סדר תחילי: סדר תחילי: A , K סדר תוכי: סדר תוכי:
Transcription
סדר תחילי: סדר תחילי: A , K סדר תוכי: סדר תוכי:
- 34 - חיים אברבוך ,תיכון רוטברג ותיכון אלון ,רמת השרון הקדמה הקדמה כידוע ניתן לשחזר עץ בינארי כאשר נתונות התוצאות שלב מס' ) 2מתבסס על הסריקה בסדר תוכי( :הפרדת של סריקה תחילית וסריקה תוכית ,או התוצאות של הצמתים השייכים לתת-העץ הימני של השורש סריקה סופית וסריקה תוכית. מהצמתים השייכים לתת-העץ השמאלי של השורש, הרעיון מפורט בהרחבה בספר "עצים בינאריים" של וכתיבתם ברשימות נפרדות ,תוך שמירה על הסדר. ראט איתן ואברבוך חיים ונחזור עליו בקצרה. כל הצמתים אשר נמצאים מימין לשורש שייכים לתת- הרעיון :האיבר הראשון בסריקה תחילית קובע את העץ הימני שלו ,וכל הצמתים שמשמאל לשורש שורש העץ והסריקה התוכית מחלקת את הצמתים שייכים לתת-העץ השמאלי שלו )הערה :כלל זה נכון לענף שמאל וענף ימין. רק לגבי סריקה תוכית(. לדוגמה :מהו העץ הבינארי שסריקתו נרשום אותם בשתי רשימות נפרדות ,בסדר בו הם בסדר תחילי היאE, K, A, B, D : רשומים בסריקה התוכית) .ציור (1 ובסדר תוכי היאA, K, E, B, D : נחזור על התהליך שתואר לעיל ונקבל את העץ הדרוש. לפי כלל-ראש-עץ ,הצומת הראשון בסריקה תחילית )ציור (2 הינו שורש העץ ולכן Eהינו הערך שבשורש העץ .נסמן הערה :כאשר נתונה סריקה סופית אזי כלל-ראש-עץ אותו בסריקות הנתונות. אומר שהאיבר האחרון הינו שורש העץ. סדר תחילי: E,K,A,B,D סדר תוכי: A,K,E,B,D E סדר תחילי: B,D סדר תחילי: K,A סדר תוכי: B,D סדר תוכי: A,K ציור 1 E B K A D ציור 2 הבטים בהוראת מדעי המחשב – ינואר 2005 - 35ערך מרובה ערך מרובה עד עתה עסקנו בעץ שכל ערכיו שונים .נשאלת השאלה נרשום אותם בשתי רשימות נפרדות ,בסדר בו הם מה קורה כאשר ערך מסוים מופיע יותר מפעם אחת. רשומים בסריקה התוכית) .ציור (3 לדוגמה :מהו העץ הבינארי שסריקתו נחזור על התהליך שתואר לעיל ונקבל את העץ הדרוש. בסדר תחילי היאE, B, A, B, D : )ציור (4 ובסדר תוכי היאB, A, E, D, B : למרות שהערך Bהופיע פעמיים לא הייתה בעיה בשחזור נפעיל את השיטה שלמדנו. העץ .חוסר הבעייתיות נובעת מכך ש B -מסוים אינו אב שלב מס' ) 1מתבסס על הסריקה בסדר תחילי( :מציאת קדמון של ה B -השני. שורש העץ . לפי כלל-ראש-עץ ,הצומת שערכה הוא Eמהווה את שני עצים אפשריים שורש העץ .נסמן אותו בסריקות הנתונות. הדוגמה הבאה מכילה אף היא ערך המופיע יותר מפעם סדר תחילי: E,B,A,B,D אחת )הערך Zמופיע פעמיים( .במקרה זה ניתן לקבל סדר תוכי: B,A,E,D,B שני פתרונות אפשריים. שלב מס' ) 2מתבסס על הסריקה בסדר תוכי( :הפרדת סדר תוכי: P ,K ,1 ,T ,9 ,B ,Z ,D ,4 ,C ,Z ,R ,W סדר סופי: P ,K ,9 ,B ,T ,D ,C ,4 ,Z ,W ,R ,Z ,1 הצמתים השייכים לתת-העץ הימני של השורש מהצמתים השייכים לתת-העץ השמאלי של השורש, שתי האפשרויות מופיעות בעמוד הבא ,כאשר בשניהם וכתיבתם ברשימות נפרדות ,תוך שמירה על הסדר. בשלב הראשון הערך 1הינו שורש העץ והחלוקה לענף שייכים שמאלי ולענף ימני ברורה .בשלב השני בענף הימני ברור לתת-העץ הימני שלו ,וכל הצמתים שמשמאל לשורש ש Zהינו השורש אך החלוקה לתת עץ שמאלי ותת עץ שייכים לתת-העץ השמאלי שלו )הערה :כלל זה נכון ימני יכולה להתבצע בשתי אפשרויות. רק לגבי סריקה תוכית(. )נסו כוחכם לפני מעבר לעמוד הבא( כל הצמתים אשר נמצאים מימין לשורש E סדר תחילי: B,D סדר תחילי: B,A סדר תוכי: D,B סדר תוכי: B,A ציור 3 E B B A D ציור 4 הבטים בהוראת מדעי המחשב – ינואר 2005 - 36 - 1 התחלה סדר תוכי: T ,9 ,B ,Z ,D ,4 ,C ,Z ,R ,W סדר תוכיP , K : סדר סופי: 9 ,B ,T ,D ,C ,4 ,Z ,W ,R ,Z סדר סופיP , K : אפשרות א' 1 K Z R P Z W T 4 C B D 9 1 סדר תוכי: T ,9 ,B ,Z ,D ,4 ,C ,Z ,R ,W סדר תוכיP , K : סדר סופי: 9 ,B ,T ,D ,C ,4 ,Z ,W ,R ,Z P,K סדר סופי: אפשרות ב' 1 K Z R W P T B Z 9 4 C D הערה :בשתי האפשרויות לא פורטו כל שלבי הבניה. הבטים בהוראת מדעי המחשב – ינואר 2005 - 37לכאורה אפשרי שני עצים אך למעשה רק עץ לכאורה אפשרי שני עצים אך למעשה רק עץ אחד אפשרי אחד אפשרי נבדוק את הדוגמה הבאה ב. סדר תוכי: T ,9 ,B ,L ,D ,Z ,C ,Z ,R ,W סדר תחיליA ,A ,B ,D ,B ,C ,C ,C ,A ,B ,D ,B : סדר סופי: 9 ,B ,T ,D ,C ,Z ,L ,W ,R ,Z D ,B ,A ,C ,B ,A ,A ,C ,B ,C ,B ,D ברור מהסריקה בסדר סופי ש Z -הינו שורש העץ .אך כאשר אנו באים לסמנו בסריקה התוכית עומדות לפנינו שתי אפשרויות. סדר תוכי: ג. סדר תוכיP ,K ,1 ,T ,9 ,B ,Z ,D ,4 ,C ,Z ,R ,W : סדר סופיP ,K ,9 ,B ,T ,D ,C ,4 ,Z ,W ,R ,Z ,1 : נניח שבחרנו את זאת המסומנת .ברור מהסריקה התוכית שענף ימין יכיל את . C,Z,R,W סיכום אך כאשר אנו מעיינים בסריקה בסדר סופי ארבעת שחזור עץ לפי שתי סריקות כאשר הערכים שונים הינו הצמתים אינם מופיעים בו ברצף .הצומת Lמופיעה תהליך פשוט .כאשר יש ערכים מרובים יתכנו מספר ביניהם .מכאן שניתן לפסול באופן מיידי אפשרות זו מקרים אשר תוארו במאמר זה. ולהמשיך באפשרות השניה. נא ציירו את העץ לפי הסריקות הנתונות. האם יכול להיות? )לקינוח שאלה שאינה קשורה לערך מרובה אך מצאתי סדר תוכיW ,K ,1 ,T ,9 ,B ,L ,D ,Z ,C ,Z ,R ,W : לנכון להביאה פה(. סדר סופיW ,K ,9 ,B ,T ,D ,C ,Z ,L ,W ,R ,Z ,1 : נתונות שתי סריקות. סדר תחיליE, B, D, K, A : סדר תוכיA, K, E, B, D : כלל תת-עץ בכל סריקה )תחילי,תוכי,סופי( כל אברי תת עץ חייבים להופיע כמקשה אחת . האם הסריקות תקינות ? מהסריקה התחילית נובע ש E -שורש העץ .נדגיש אותו בסריקות ונקבל תרגיל מסכם עבור כל סעיף בנה את העץ)עצים( לפי סדר תחילי היאE, B, D, K, A : הסריקות הנתונות .הסבר ונמק את השלבים. סדר תוכי היאA, K, E, B, D : מהסריקה התוכית נובע שענף שמאל הינו A,Kוענף א. ימין .B,Dאך בסריקה בסדר התחילי הם מופיעים סדר תוכי: W ,K ,1 ,T ,9 ,B ,L ,D ,Z ,C ,Z ,R, W בסדר הפוך .כלומר ,תחילה מופיע ענף ימין ואז ענף סדר סופי: W ,K ,9 ,B ,T ,D ,C ,Z ,L ,W ,R ,Z ,1 שמאל ומכאן שהסריקות הנתונות אינן תקינות. הבטים בהוראת מדעי המחשב – ינואר 2005