בכיתה
1.מבדק ש.ב.
2. יצירת עץ במחשב (יש להטעין לפרויקט את קובץ ה- dll ששמו Unit4):
א. using
;using Unit4.CollectionsLib
2. יצירת עץ במחשב (יש להטעין לפרויקט את קובץ ה- dll ששמו Unit4):
א. using
;using Unit4.CollectionsLib
using Unit4.BinTreeCanvasLib;
using Unit4.BinTreeUtilsLib;
using Unit4.BinTreeUtilsLib;
ב. יצירת עץ ריק
שם העץ: bn.
טיפוס: <BinNode<int
1. הדפסת הערכים הזוגיים
כתבו פעולה PrintEvens המקבלת עץ שלמים ומדפיסה את הצמתים בעלי ערך זוגי.
שם העץ: bn.
טיפוס: <BinNode<int
;BinNode<int> bn = null
ג. תרגול יצירת עץ חדש בשם t:
צרו עץ שלמים t שהשורש שלו הוא הערך 5. הבן השמאלי של 5 יהיה 50.
הבן הימני של 5 יהיה 51.
הבן השמאלי של 50 יהיה 500.
הבן הימני של 51 יהיה 511.
דוגמה ליצירת עץ:
ניצור עץ t1 הנראה כך:
50
4 0
2
;BinNode<int> t1 = new BinNode<int>(50)
;t1.SetLeft(new BinNode<int>(0)
;t1.SetRight(new BinNode<int>(4)
;t1.GetLeft().SetRight(new BinNode<int>(2)
ד. תרגול יצירת פעולות ראשונות על עצים:
כל אחת מהפעולות שלהלן תעבוד על עץ שלמים, תעבור עליו בסדר תחילי, ותהיה רקורסיבית.1. הדפסת הערכים הזוגיים
כתבו פעולה PrintEvens המקבלת עץ שלמים ומדפיסה את הצמתים בעלי ערך זוגי.
הסתכלו בתשובה שלהלן לאחר שפתרתם התרגיל בעצמכם:
2. הדפסת הערכים הראשוניים
כתבו פעולה PrintPrimes המקבלת עץ שלמים ומדפיסה בסדר תחילי
את כל הצמתים המכילים ערך ראשוני.
כתבו פעולת עזר (רקורסיבית) IsPrime המקבלת מספר שלם,
ומחזירה true אם הוא ראשוני, אחרת - false.
את כל הצמתים המכילים ערך ראשוני.
כתבו פעולת עזר (רקורסיבית) IsPrime המקבלת מספר שלם,
ומחזירה true אם הוא ראשוני, אחרת - false.
הסתכלו בתשובה שלהלן לאחר שפתרתם התרגיל בעצמכם:
הערה: שיעורי הבית
בהמשך למטה...
בהמשך למטה...
לבית (השיעורים הם ליום ה' הקרוב)
1. קראו ממשק המחלקה BinNode (עמ' 167 בספר).
2. המלצה לשמירת כל מה שקשור בעצים ב- Disk on key שלכם:
א. בכפוף לתיקיית 'מבני נתונים' שלכם, צרו תיקייה בשם TreesDrills
(לשמירת תרגילים).
(לשמירת תרגילים).
ב. בכפוף לתיקיית 'מבני נתונים' שלכם, צרו תיקייה בשם TreesGeneral
(לשמירת דברים שאינם תרגילים).
(לשמירת דברים שאינם תרגילים).
ג. בכפוף לתיקייה TreesDrills --> צרו תיקייה בשם BookDrills
(לשמירת פתרונות תרגילים המופיעים בספר.
הכוונה לדוגמאות הפתורות כמו בעמ' 169, וכן לתרגילי הספר הרגילים כמו בעמ' 176).
(לשמירת פתרונות תרגילים המופיעים בספר.
הכוונה לדוגמאות הפתורות כמו בעמ' 169, וכן לתרגילי הספר הרגילים כמו בעמ' 176).
ד. בכפוף לתיקייה TreeDrills --> צרו תיקיה בשם RanDrills
(לשמירת הפתרונות שלכם לתרגילים שתקבלו ממני ואינם מופיעים בספר).
ה. בכפוף לתיקייה TreeDrills --> צרו תיקיה בשם OtherDrills
(לשמירת תרגילים שאתם חיברתם או המצאתם או מצאתם בעצמכם ורציתם לפתור).
(לשמירת הפתרונות שלכם לתרגילים שתקבלו ממני ואינם מופיעים בספר).
ה. בכפוף לתיקייה TreeDrills --> צרו תיקיה בשם OtherDrills
(לשמירת תרגילים שאתם חיברתם או המצאתם או מצאתם בעצמכם ורציתם לפתור).
3. תרגול בנושא עצים, לשמירה על גבי ה- Disk on key שלכם:
כל הפתרונות לשאלות שלהלן נמצאות בספר בעמודים 169-170.
עברו על פתרונות הספר לאחר שניסיתם לכתוב את הפעולות בעצמכם.
כל הפתרונות לשאלות שלהלן נמצאות בספר בעמודים 169-170.
עברו על פתרונות הספר לאחר שניסיתם לכתוב את הפעולות בעצמכם.
כל אחת מהפעולות שלהלן תעבוד על עץ שלמים, תעבור על צמתיו בסדר תחילי, ותהיה רקורסיבית.
א. כתבו פעולה NumNodes המקבלת עץ ומחזירה את כמות צמתיו.
ב. כתבו פעולה IsExist המקבלת עץ ומספר שלם,
ומחזירה true אם אחת מצומתי העץ מכיל ערך זה, אחרת - false.
ג. כתבו פעולה EachHasTwoChilds המקבלת עץ שלמים
ומחזירה true אם לכל צומת פנימי (צומת שאינו עלה) יש שני בנים.
א. כתבו פעולה NumNodes המקבלת עץ ומחזירה את כמות צמתיו.
ב. כתבו פעולה IsExist המקבלת עץ ומספר שלם,
ומחזירה true אם אחת מצומתי העץ מכיל ערך זה, אחרת - false.
ג. כתבו פעולה EachHasTwoChilds המקבלת עץ שלמים
ומחזירה true אם לכל צומת פנימי (צומת שאינו עלה) יש שני בנים.
מבדק ש.ב בית יהיה בתחילת השיעור הבא.
בשיעור הבא
1. יצירת עצם מטיפוס עץ-שלמים עם 10 ערכים אקראיים בטווח המספרים 1-100,
והפנייה אליו על-ידי bn:
;bn = BinTreeUtils.BuildRandomTree(10, 1, 100)
2. הוספת העץ ל"קנבס":
;TreeCanvas.AddTree<int>(bn)
3. קביעת מהירות האנימציה של תצוגת העץ:
;TreeCanvas.SetAnimastion(AnimationSpeed.StandardSpeedPlus1)
4. קביעת סדר סריקת העץ:
;()TreeCanvas.TreeDrawInOrder
והפנייה אליו על-ידי bn:
;bn = BinTreeUtils.BuildRandomTree(10, 1, 100)
2. הוספת העץ ל"קנבס":
;TreeCanvas.AddTree<int>(bn)
3. קביעת מהירות האנימציה של תצוגת העץ:
;TreeCanvas.SetAnimastion(AnimationSpeed.StandardSpeedPlus1)
4. קביעת סדר סריקת העץ:
;()TreeCanvas.TreeDrawInOrder
5. פעולות נוספות על עצים.