ערכתי לאחרונה בתאריך 20.11.08 בשעה 21:10 בברכה, TTAsnn
אתה פשוט לא מצליח להבין מה שאני אומר (כנראה אני מסביר חרא)...הנה דוגמא לפעולה:
אני אסביר את זה עבור השיטה עם המערך הנוסף ולא עבור השיטה עם הרשימה הנוספת כי זה קצת יותר מסובך עם המערך וזה די מסביר את כוונתי לגבי שתי השיטות.
המערך שצריך לאתחל A, המערך עזר help והמונה עזר: count
נדגים את זה עבור len(A) == 6 אבל השיטה תקפה לכל אורך.
A
ו help מתחילים לא מאותחלים (מן הסתם) והם באותו האורך (6)
last מאותחל ל -1 (מינוס אחד)
ברגע ש last == -1 אני יודע ש A ריק.
נגיד ואני רוצה להכניס את המספר 12 ל A בתא בעל האינדקס 4.
אני עושה:
A[4] = 12 last++ help[last] = 4
|
ובשביל להוציא את האיבר באינדקס 4 מהמערך:
help[find(help,4)] = help[last] last--
|
find מחפשת ערך בתוך מערך ומחזירה את האינדקס שלו.
הקוד הראשון מניח שלא הכניסו עדיין כלום למקום באינדקס 4 (if פשוט יסדר את זה) והקוד השני מניח שקיים משהו באינדקס 4 (if פשוט יסדר את זה)
לא התעסקתי בקטנות כי זה לא רלוונטי לפתרון.
ד"א, כמובן שהוצאה מהמערך מתבצעת ע"י פונקציה שמחזירה את ערך האתחול אם האינדקס לא נמצא במערך help ומחזירה את הערך אם האינדקס כן נמצא במערך help. מקווה שעכשיו זה מובן... (פאק אני לא מאמין שבאמת השקעתי כ"כ בשביל להסביר את זה...)