עבור לתוכן

שאלה בעיצוב תוכנה (שרשרת מעגלית)

Featured Replies

פורסם

יש שרשרת מעגלית

chinhilexnr7.png

הפעלה מקבלת שרשרת מעגלית ומחזירה הפניה לחוליה שממנה מתחיל המעגל.

אני לא יודע איך לעשות אני שובר כבר יומיים את הראש על השאלה הזאת :s07:

אם מישהוא יוכל לעזור לי זה יהיה גדול

תודה מראש ;)

שכחתי לציין שזה בשפת JAVA

פורסם

עוד פיתרון שנעזר ברשימה זמנית:

זו לא בעיה לקבל את המצביע לתא שמתחיל את המעגל,

בבדיקה האם התאים שווים אתה מחזיר את התא שהתא הנוכחי מצביע עליו...

0) האיבר הנוכחי הוא האיבר הראשון בעל מידע,Head (לא ראש דמה)

1) פתח רשימה חדשה (זמנית)

2)

2.0) אם תוכן התא = תוכן המיוחד בצע "שיחזור" והחזר "יש לולאה"

2.1) הוסף את תוכן האיבר הנוכחי ( מספיק רק אחד מהשדות) אחרי הזנב של הרשימה הזמנית

2.2) ודרוס את המידע שיש ברשימה המקורית בתא המדובר במידע ידוע ומיוחד

(למשל 19326522- , או מחרוזת מיוחדת.... גם מצביע למידע הזה...)

2.3) אם זה לא סוף הרשימה עבור לאיבר הבא ובצע את 2 שוב

3) בצע "שיחזור" החזר "אין לולאה"

שיחזור:

בכל מקרה לפני הפקודה החזר בצע:

0) האיבר הנוכחי = האיבר הראשון בעל המידע

1)אם הרשימה הזמנית לא ריקה הכנס את תוכן התא הראשון לאיבר הנוכחי של הרשימה המקורית

1.1) מחק את התא הראשון של הרשימה הזמנית. חזור על שלב 1.

2) מחק מהזיכרון כל שריד לרשימה הזמנית.

פורסם
  • מחבר

לא הבנתי

פורסם

ברגע שמצאת את המעגל, אתה יכול לעבור איבר איבר מתחילת הרשימה, ולבדוק אם הוא נמצא במעגל. הראשון שאתה מוצא שנמצא במעגל הוא תחילת המעגל.

פורסם

שאלה מתוך ראיון עבודה,

אותה שאלה כמו של פותח התראד, רק בזמן ריצה לינארי, וללא זכרון נוסף ( הכוונה ללא מחסניות, רשימות מרושרות, רקורסיה וכו' ).

פתרון ינתן בהמשך :)

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים