עבור לתוכן
View in the app

A better way to browse. Learn more.

HWzone

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

שאלה בעץ בינארי

Featured Replies

פורסם

יש לי שאלה שפתרתי והיות ואני די מתקשה בסוג הזה של השאלות הייתי רוצה להתייעץ.

נניח שהמחלקה Node שלהלן מממשת עץ בינרי:

public class Node
{
private int _number;
private Node _leftSon, _rightSon;
public Node (int number)
{
_number = number;
_leftSon = null;
_rightSon = null;
}
public int getNumber()
{return _number; }
public Node getLeftSon()
{return _leftSon; }
public Node getRightSon()
{return _rightSon; }
}

נתונות שתי השיטות הבאות:

f המקבלת כפרמטרים שני מספרים שלמים

ו-what המקבלת כפרמטר שורש של עץ בינרי (מטיפוס Node):

public static int f (int a, int b)
{
return (a>b) ? a:b;
}
public static int what (Node root)
{
if (root == null)
return -1;
return (f (what (root.getLeftSon()),
what (root.getRightSon())) +1);
}

מה תחזיר השיטה what היא תקבל את השורש של העץ root הבא?

123.png

לי יצא 4 אבל אין לי מושג אם זה נכון.

פורסם
  • מחבר

אין לי פה סביבה...

פורסם

שונא רקורסיות יחיה....

- - - תגובה אוחדה: - - -

אבל נראה לי הוא יחזיר 3...

פורסם

לא התעמקתי יותר מידי אבל אהי חושב שהוא מחזיר 2 , הוא סופר את הבנים הימניים ..

או שהוא סופר את אורך המסלול שנגמר בעלה ימני . (נראה לי יותר ניחוש א)

- - - תגובה אוחדה: - - -

*אהי = אני .

פורסם

לא מדויק אבל קרוב :-)

פורסם

אי , הוא מחזיר 1 .

מחזיר את מספר הענפים שנגמרים בעלה ימני ?

פורסם
  • מחבר

למישהו אולי יש class של זה עלמנת שאני יוכל להריץ ולבדוק ?

קצת לא מובן לי כל הקונספט של זה (איך אני יוצר בן ימני או שמאלי, מדפיס וכו') לכן אני לא יודע איך לכתוב אחד כזה ויש לי עוד מלא תרגילים דומים.

פורסם

הוא יחזיר 3.

public static void main(String []args){
Node n = new Node(32);
n.setRight(4);
n.setLeft(12);
n.right().setLeft(5);
n.right().left().setLeft(1);
n.left().setRight(3);
System.out.println(Node.what(n));
}

שים לב שהוספתי מתודות מסוג setter וקיצרתי את getLeftSon ל-left (כנ"ל לגבי right)

פורסם

איך זה ?

פורסם

באמת שזה לא כזה מסובך... שימו לב שלא התבלבלתם בחישוב איפה נמצאים הסוגריים (האלגוריתם מתייחס אותו דבר לצד ימין ושמאל).

פורסם
  • מחבר

אז כמה זה אמור לצאת ?

פורסם
  • מחבר

יש משהו שאני לא ממש מבין ובגלל זה לא כתבתי את הקוד.

איך אני יוצר מחלקה של עץ בינארי ? ז"א איך אני מכניס איבר לצד הימני או שמאלי ?

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.