סדר תחילי: סדר תחילי: 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‬‬