פורסם 2014 בפברואר 411 שנים יש לי שאלה שפתרתי והיות ואני די מתקשה בסוג הזה של השאלות הייתי רוצה להתייעץ. נניח שהמחלקה 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 הבא? לי יצא 4 אבל אין לי מושג אם זה נכון.
פורסם 2014 בפברואר 411 שנים לא התעמקתי יותר מידי אבל אהי חושב שהוא מחזיר 2 , הוא סופר את הבנים הימניים ..או שהוא סופר את אורך המסלול שנגמר בעלה ימני . (נראה לי יותר ניחוש א)- - - תגובה אוחדה: - - -*אהי = אני .
פורסם 2014 בפברואר 411 שנים מחבר למישהו אולי יש class של זה עלמנת שאני יוכל להריץ ולבדוק ?קצת לא מובן לי כל הקונספט של זה (איך אני יוצר בן ימני או שמאלי, מדפיס וכו') לכן אני לא יודע איך לכתוב אחד כזה ויש לי עוד מלא תרגילים דומים.
פורסם 2014 בפברואר 511 שנים הוא יחזיר 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)
פורסם 2014 בפברואר 511 שנים באמת שזה לא כזה מסובך... שימו לב שלא התבלבלתם בחישוב איפה נמצאים הסוגריים (האלגוריתם מתייחס אותו דבר לצד ימין ושמאל).
פורסם 2014 בפברואר 511 שנים מחבר יש משהו שאני לא ממש מבין ובגלל זה לא כתבתי את הקוד.איך אני יוצר מחלקה של עץ בינארי ? ז"א איך אני מכניס איבר לצד הימני או שמאלי ?
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.