המשימה
כתוב **שלוש** פעולות רקורסיביות שמדפיסות את ערכי העץ, כל ערך בשורה
נפרדת:
1. סריקה תחילית (Preorder): שורש, שמאל, ימין.
2. סריקה תוכית (Inorder): שמאל, שורש, ימין.
3. סריקה סופית (Postorder): שמאל, ימין, שורש.
עבור העץ שבדוגמה:
תחילית: 4 2 1 3 7 9
תוכית: 1 2 3 4 7 9
סופית: 1 3 2 9 7 4
הנחיות:
• שלוש הפעולות זהות לחלוטין חוץ ממיקום אחד: היכן ממוקמת שורת ההדפסה
ביחס לשתי הקריאות הרקורסיביות. זו כל השאלה.
• מקרה הבסיס בשלושתן: עץ ריק — לא מדפיסים כלום ומסיימים.
• עץ ריק אינו מדפיס דבר, וזה תקין.
ממשק מבני הנתונים כבר מצורף למשימה.
```ds:tree
{"title":"העץ שבדוגמה","nodes":["4","2","7","1","3",null,"9"]}
```
```ds:table
{"title":"שלושת הפלטים","rows":[["סריקה","פלט"],["תחילית","4 2 1 3 7 9"],["תוכית","1 2 3 4 7 9"],["סופית","1 3 2 9 7 4"]]}
```
קוד הפתיחה
public class Main {
public static void preorder(BinNode<Integer> root) {
// שורש, שמאל, ימין
}
public static void inorder(BinNode<Integer> root) {
// שמאל, שורש, ימין
}
public static void postorder(BinNode<Integer> root) {
// שמאל, ימין, שורש
}
public static void main(String[] args) {
// 4
// / \
// 2 7
// / \ \
// 1 3 9
BinNode<Integer> one = new BinNode<Integer>(1);
BinNode<Integer> three = new BinNode<Integer>(3);
BinNode<Integer> nine = new BinNode<Integer>(9);
BinNode<Integer> two = new BinNode<Integer>(one, 2, three);
BinNode<Integer> seven = new BinNode<Integer>(null, 7, nine);
BinNode<Integer> root = new BinNode<Integer>(two, 4, seven);
preorder(root); // 4 2 1 3 7 9
System.out.println("---");
inorder(root); // 1 2 3 4 7 9
System.out.println("---");
postorder(root); // 1 3 2 9 7 4
}
}
כדי לכתוב, להריץ ולקבל משוב — התחבר עם חשבון Google. לוקח שנייה.
המשוב נוצר על ידי AI ועשוי לטעות. אם אתה חושב שהפתרון שלך נכון —
כנראה שאתה צודק. הציון כאן הוא לתרגול בלבד ואינו מדווח לאיש.
אל תכתוב בקוד פרטים אישיים כמו שם מלא, טלפון או כתובת. הקוד נשלח לשירות
בדיקה חיצוני.