tirgul 13: trees 1. הגדרות עץ – מודל מופשט של מבנה היררכי. עץ...
Post on 22-Dec-2015
277 views
TRANSCRIPT
![Page 1: Tirgul 13: Trees 1. הגדרות עץ – מודל מופשט של מבנה היררכי. עץ מורכב מאוסף של צמתים (קודקודים) עם יחס אבא-בן. שורש](https://reader030.vdocuments.mx/reader030/viewer/2022033012/56649d775503460f94a59d43/html5/thumbnails/1.jpg)
Tirgul 13:Trees
1
![Page 2: Tirgul 13: Trees 1. הגדרות עץ – מודל מופשט של מבנה היררכי. עץ מורכב מאוסף של צמתים (קודקודים) עם יחס אבא-בן. שורש](https://reader030.vdocuments.mx/reader030/viewer/2022033012/56649d775503460f94a59d43/html5/thumbnails/2.jpg)
הגדרות
– מודל מופשט של מבנה היררכי. עץ מורכב עץ•מאוסף של צמתים )קודקודים( עם יחס אבא-בן.
– צומת ללא אבא. בכל עץ יש בדיוק בעץשורש•שורש אחד. לכל הצמתים פרט לשורש יש בדיוק אב
אחד. 2
![Page 3: Tirgul 13: Trees 1. הגדרות עץ – מודל מופשט של מבנה היררכי. עץ מורכב מאוסף של צמתים (קודקודים) עם יחס אבא-בן. שורש](https://reader030.vdocuments.mx/reader030/viewer/2022033012/56649d775503460f94a59d43/html5/thumbnails/3.jpg)
הגדרות
הנו Y, ו Y של צומת אב קדמון הינו Xצומת • עובר Y אם המסלול מהשורש אל X של צאצא
.Xדרך X אם X של בן הנו W, ו W של אבא הנו הXצומת •
ויש ביניהם צלעWהנו אב קדמון של
Y
X
W
3
![Page 4: Tirgul 13: Trees 1. הגדרות עץ – מודל מופשט של מבנה היררכי. עץ מורכב מאוסף של צמתים (קודקודים) עם יחס אבא-בן. שורש](https://reader030.vdocuments.mx/reader030/viewer/2022033012/56649d775503460f94a59d43/html5/thumbnails/4.jpg)
הגדרות
– צומת אשר אין לו בנים.עלה•
= מרחק הצומת של צומת בעץ עומק•מהשורש.
4
![Page 5: Tirgul 13: Trees 1. הגדרות עץ – מודל מופשט של מבנה היררכי. עץ מורכב מאוסף של צמתים (קודקודים) עם יחס אבא-בן. שורש](https://reader030.vdocuments.mx/reader030/viewer/2022033012/56649d775503460f94a59d43/html5/thumbnails/5.jpg)
הגדרות – עומק מקסימאלי של צומת של העץ גובה•
(.1-בעץ )וגובה של עץ ריק הוא
עץ אשר בו מספר הבנים של - עץ בינארי•.2כל צומת אינו עולה על
5
![Page 6: Tirgul 13: Trees 1. הגדרות עץ – מודל מופשט של מבנה היררכי. עץ מורכב מאוסף של צמתים (קודקודים) עם יחס אבא-בן. שורש](https://reader030.vdocuments.mx/reader030/viewer/2022033012/56649d775503460f94a59d43/html5/thumbnails/6.jpg)
הגדרותעץ חיפוש בינארי
עץ בינארי אשר בו עבור כל צומת, הערכים של כל האיברים בתת העץ השמאלי שלו
קטנים )או שווים( ממנו, וכל האיברים .בתת העץ הימני שלו גדולים ממנו
6
77
77
11
33 1010
44
66 1414
1313
![Page 7: Tirgul 13: Trees 1. הגדרות עץ – מודל מופשט של מבנה היררכי. עץ מורכב מאוסף של צמתים (קודקודים) עם יחס אבא-בן. שורש](https://reader030.vdocuments.mx/reader030/viewer/2022033012/56649d775503460f94a59d43/html5/thumbnails/7.jpg)
שלוש שיטות לסריקת עץ
pre-order, in-order ,post-order.
בביצוע הסריקות בעץ הנתון יתקבל סדר האיברים הבא:
: (pre-order )תחילי•:(in-order)תוכי •: (post-order )סופי•
11
99
88
66 33
22
55
7
1,6,8,5,2,9,38,6,2,5,9,1,3
8,2,9,5,6,3,1
מה הייתה התוצאה אם binary searchהעץ היה
tree?
![Page 8: Tirgul 13: Trees 1. הגדרות עץ – מודל מופשט של מבנה היררכי. עץ מורכב מאוסף של צמתים (קודקודים) עם יחס אבא-בן. שורש](https://reader030.vdocuments.mx/reader030/viewer/2022033012/56649d775503460f94a59d43/html5/thumbnails/8.jpg)
הגדרות: עוקב וקודם
:x לצומת העוקב
הצומת בעל מפתח הקטן x ביותר הגדול מערך של
:x לצומתהקודם
הוא הצומת בעל מפתח הגדול ביותר הקטן מערך
x של
דוגמה:
הואWהקודם של
הואWהעוקב של
הואCהקודם של
הואCהעוקב של
:inOrder, לפי סריקת BSTב- R
8
Y
B
E
![Page 9: Tirgul 13: Trees 1. הגדרות עץ – מודל מופשט של מבנה היררכי. עץ מורכב מאוסף של צמתים (קודקודים) עם יחס אבא-בן. שורש](https://reader030.vdocuments.mx/reader030/viewer/2022033012/56649d775503460f94a59d43/html5/thumbnails/9.jpg)
דוגמא
9
![Page 10: Tirgul 13: Trees 1. הגדרות עץ – מודל מופשט של מבנה היררכי. עץ מורכב מאוסף של צמתים (קודקודים) עם יחס אבא-בן. שורש](https://reader030.vdocuments.mx/reader030/viewer/2022033012/56649d775503460f94a59d43/html5/thumbnails/10.jpg)
מימוש: עץ
10
![Page 11: Tirgul 13: Trees 1. הגדרות עץ – מודל מופשט של מבנה היררכי. עץ מורכב מאוסף של צמתים (קודקודים) עם יחס אבא-בן. שורש](https://reader030.vdocuments.mx/reader030/viewer/2022033012/56649d775503460f94a59d43/html5/thumbnails/11.jpg)
public class BinaryTree {
protected BinaryNode root;
public BinaryTree)( {root = null;
} // BinaryTree
public boolean isEmpty)( {return root == null;
} // isEmpty public void insert)Object toAdd( {
if )isEmpty)(( root = new BinaryNode)toAdd(;else root.insert)toAdd(;
} // insert
public String inOrder)( {if )isEmpty)(( return "";else return root.inOrder)(;
} // inOrder public String preOrder)( {
if )isEmpty)(( return "";else return root.preOrder)(;
} // preOrder
public String postOrder)( {if )isEmpty)(( return "";else return root.postOrder)(;
} // postOrder}
BinaryTree
11
![Page 12: Tirgul 13: Trees 1. הגדרות עץ – מודל מופשט של מבנה היררכי. עץ מורכב מאוסף של צמתים (קודקודים) עם יחס אבא-בן. שורש](https://reader030.vdocuments.mx/reader030/viewer/2022033012/56649d775503460f94a59d43/html5/thumbnails/12.jpg)
BinaryNode
public class BinaryNode { protected Object data; protected BinaryNode left; protected BinaryNode right;
public BinaryNode)Object data( {this.data = data;left = null;right = null;
} // BinaryNode …}
public void insert)Object toAdd( { double select = Math.random)(; if )select > 0.5( {
if )left == null( left = new BinaryNode)toAdd(;else left.insert)toAdd(;
} else {
if )right == null( right = new BinaryNode)toAdd(;else right.insert)toAdd(;
}} // insert
12
![Page 13: Tirgul 13: Trees 1. הגדרות עץ – מודל מופשט של מבנה היררכי. עץ מורכב מאוסף של צמתים (קודקודים) עם יחס אבא-בן. שורש](https://reader030.vdocuments.mx/reader030/viewer/2022033012/56649d775503460f94a59d43/html5/thumbnails/13.jpg)
BinaryNode
public String inOrder)( { String res = ""; if )left != null(
res = res + left.inOrder)(; if )data == null(
res = res + " <null> "; else
res = res + " " + data.toString)( + " "; if )right != null(
res = res + right.inOrder)(; return res;} // inOrder
public String preOrder)( { String res = ""; if )data == null(
res = res + " <null> "; else
res = res + " " + data.toString)( + " "; if )left != null(
res = res + left.preOrder)(; if )right != null(
res = res + right.preOrder)(; return res;} // preOrder
13
![Page 14: Tirgul 13: Trees 1. הגדרות עץ – מודל מופשט של מבנה היררכי. עץ מורכב מאוסף של צמתים (קודקודים) עם יחס אבא-בן. שורש](https://reader030.vdocuments.mx/reader030/viewer/2022033012/56649d775503460f94a59d43/html5/thumbnails/14.jpg)
BinaryNode
14
public String postOrder)( { String res = ""; if )left != null(
res = res + left.postOrder)(; if )right != null(
res = res + right.postOrder)(; if )data == null(
res = res + " <null> "; else
res = res + " " + data.toString)( + " "; return res;} // postOrder
![Page 15: Tirgul 13: Trees 1. הגדרות עץ – מודל מופשט של מבנה היררכי. עץ מורכב מאוסף של צמתים (קודקודים) עם יחס אבא-בן. שורש](https://reader030.vdocuments.mx/reader030/viewer/2022033012/56649d775503460f94a59d43/html5/thumbnails/15.jpg)
דוגמה לשיטות של עצים: בעץ בינארי כלליגובהחישוב
:BinaryTreeבמחלקה
public int height)( { if )isEmpty)((
return -1; else
return root.height)(;} // height
:BinaryNodeבמחלקה
public int height)( { int resLeft = -1; int resRight = -1; if )left != null( {
resLeft = left.height)(; } if )right != null( {
resRight = right.height)(; } return Math.max)resLeft, resRight( + 1;} // height
15
![Page 16: Tirgul 13: Trees 1. הגדרות עץ – מודל מופשט של מבנה היררכי. עץ מורכב מאוסף של צמתים (קודקודים) עם יחס אבא-בן. שורש](https://reader030.vdocuments.mx/reader030/viewer/2022033012/56649d775503460f94a59d43/html5/thumbnails/16.jpg)
מימוש:חיפוש בינארי - עץ
BST
BST
BinaryTree
BSN
BinaryNode
הורשה
16
![Page 17: Tirgul 13: Trees 1. הגדרות עץ – מודל מופשט של מבנה היררכי. עץ מורכב מאוסף של צמתים (קודקודים) עם יחס אבא-בן. שורש](https://reader030.vdocuments.mx/reader030/viewer/2022033012/56649d775503460f94a59d43/html5/thumbnails/17.jpg)
BST
17
import java.util.Comparator;public class BST extends BinaryTree { private Comparator comp;
public BST)Comparator comp( {super)(;this.comp = comp;
} // BST
… // )override insert only(
} // class BST
public class BSN extends BinaryNode { private Comparator comp;
public BSN)Object data, Comparator comp( {
super)data(;this.comp = comp;
} // BSN
… // )override insert, remove, etc.(} // class BSN
![Page 18: Tirgul 13: Trees 1. הגדרות עץ – מודל מופשט של מבנה היררכי. עץ מורכב מאוסף של צמתים (קודקודים) עם יחס אבא-בן. שורש](https://reader030.vdocuments.mx/reader030/viewer/2022033012/56649d775503460f94a59d43/html5/thumbnails/18.jpg)
import java.util.Comparator;
public class Main {
public static void main)String[] args( {
Comparator comp = new IntegerComparator)(;
BST tree1 = new BST)comp(;
tree1.insert)new Integer)50((; // Step 1
tree1.insert)new Integer)60((; // Step 2
tree1.insert)new Integer)40((; // Step 3
tree1.insert)new Integer)30((; // Step 4
tree1.insert)new Integer)20((; // Step 5
tree1.insert)new Integer)45((; // Step 6
tree1.insert)new Integer)65((; // Step 7
System.out.println)"InOrder: " + tree1.inOrder)((;
System.out.println)"PreOrder: " + tree1.preOrder)((;
System.out.println)"PostOrder: " + tree1.postOrder)((;
System.out.println)"Find Minimum: " + tree1.findMin)((;
System.out.println)"Height: " + tree1.height)((;
}
} 18
50
6040
30
20
45 65
Step 1Step 2Step 3Step 4Step 5Step 6Step 7
![Page 19: Tirgul 13: Trees 1. הגדרות עץ – מודל מופשט של מבנה היררכי. עץ מורכב מאוסף של צמתים (קודקודים) עם יחס אבא-בן. שורש](https://reader030.vdocuments.mx/reader030/viewer/2022033012/56649d775503460f94a59d43/html5/thumbnails/19.jpg)
public class IntegerComparator implements Comparator {public int compare)Object o1, Object o2( {
if )))Integer(o1(.intValue)( > ))Integer(o2(.intValue)((return 1;
else if )))Integer(o1(.intValue)( == ))Integer(o2(.intValue)((return 0;
elsereturn -1;
}}
IntegerComparator
19
![Page 20: Tirgul 13: Trees 1. הגדרות עץ – מודל מופשט של מבנה היררכי. עץ מורכב מאוסף של צמתים (קודקודים) עם יחס אבא-בן. שורש](https://reader030.vdocuments.mx/reader030/viewer/2022033012/56649d775503460f94a59d43/html5/thumbnails/20.jpg)
public class CharacterComparator implements Comparator {public int compare)Object o1, Object o2( {
if )))Character(o1(.charValue)( > ))Character(o2(.charValue)((return 1;
else if )))Character(o1(.charValue)( == ))Character(o2(.charValue)((return 0;
elsereturn -1;
}}
CharacterComparator
20
![Page 21: Tirgul 13: Trees 1. הגדרות עץ – מודל מופשט של מבנה היררכי. עץ מורכב מאוסף של צמתים (קודקודים) עם יחס אבא-בן. שורש](https://reader030.vdocuments.mx/reader030/viewer/2022033012/56649d775503460f94a59d43/html5/thumbnails/21.jpg)
BST Insert: Example
• Example: Insert C
F
B H
KDA
C
21
![Page 22: Tirgul 13: Trees 1. הגדרות עץ – מודל מופשט של מבנה היררכי. עץ מורכב מאוסף של צמתים (קודקודים) עם יחס אבא-בן. שורש](https://reader030.vdocuments.mx/reader030/viewer/2022033012/56649d775503460f94a59d43/html5/thumbnails/22.jpg)
הכנסה איבר חדש לעץ
:BSTבמחלקה
public void insert)Object toAdd({ if )isEmpty)(( {
root = new BSN)toAdd, this.comp(; } else { root.insert)toAdd(; }} // insert
:BSNבמחלקה
public void insert)Object toAdd( { if )comp.compare)toAdd, this.data( < 0( { if )left == null( left = new BSN)toAdd,this.comp(; else left.insert)toAdd(; } if )comp.compare)toAdd, this.data( > 0( { if )right == null( right = new BSN)toAdd,this.comp(; else right.insert)toAdd(; }} // insert
22
![Page 23: Tirgul 13: Trees 1. הגדרות עץ – מודל מופשט של מבנה היררכי. עץ מורכב מאוסף של צמתים (קודקודים) עם יחס אבא-בן. שורש](https://reader030.vdocuments.mx/reader030/viewer/2022033012/56649d775503460f94a59d43/html5/thumbnails/23.jpg)
מציאת קודקוד בעל מפתח מינימאלי.בעץ חיפוש בינארי
:BSTבמחלקה public Object findMin)( {
if )isEmpty)(( {return null; // Exceptions are needed...
}return ))BSN(root(.findMin)(;
} // findMin:BSNבמחלקה
public Object findMin)( {BinaryNode t=this;while) t.left != null (
t = t.left;return t.data;
} // findMin
23
מה היינו צריכים לעשות אם ?BSTהעץ לא היה
![Page 24: Tirgul 13: Trees 1. הגדרות עץ – מודל מופשט של מבנה היררכי. עץ מורכב מאוסף של צמתים (קודקודים) עם יחס אבא-בן. שורש](https://reader030.vdocuments.mx/reader030/viewer/2022033012/56649d775503460f94a59d43/html5/thumbnails/24.jpg)
דוגמא ממבחן
24
![Page 25: Tirgul 13: Trees 1. הגדרות עץ – מודל מופשט של מבנה היררכי. עץ מורכב מאוסף של צמתים (קודקודים) עם יחס אבא-בן. שורש](https://reader030.vdocuments.mx/reader030/viewer/2022033012/56649d775503460f94a59d43/html5/thumbnails/25.jpg)
) FULL ( עץ בינארי מלא
עץ בינארי אשר בו לכל צומת מלאעץ בינארי .פנימי יש )בדיוק( שני בנים
25
![Page 26: Tirgul 13: Trees 1. הגדרות עץ – מודל מופשט של מבנה היררכי. עץ מורכב מאוסף של צמתים (קודקודים) עם יחס אבא-בן. שורש](https://reader030.vdocuments.mx/reader030/viewer/2022033012/56649d775503460f94a59d43/html5/thumbnails/26.jpg)
) PERFECT ( עץ בינארי מושלם
עץ בינארי מלא שבו לכל .העלים יש אותו עומק
מושלםעץ בינארי
26
![Page 27: Tirgul 13: Trees 1. הגדרות עץ – מודל מופשט של מבנה היררכי. עץ מורכב מאוסף של צמתים (קודקודים) עם יחס אבא-בן. שורש](https://reader030.vdocuments.mx/reader030/viewer/2022033012/56649d775503460f94a59d43/html5/thumbnails/27.jpg)
) COMPLETE ( עץ בינארי שלם
לכל הקדקודים שלו עד
h-2h-2 שכבה
בנים2 יש בדיוק
כל הקדקודים
hhברמה ה
מרוכזים לשמאל
שלםעץ בינארי ומתקיים: h שגובהו עץ בינארי
27
![Page 28: Tirgul 13: Trees 1. הגדרות עץ – מודל מופשט של מבנה היררכי. עץ מורכב מאוסף של צמתים (קודקודים) עם יחס אבא-בן. שורש](https://reader030.vdocuments.mx/reader030/viewer/2022033012/56649d775503460f94a59d43/html5/thumbnails/28.jpg)
בדיקה האם עץ בינארי הוא עץ בינארי מושלם
:BSTבמחלקה public boolean isPerfect)( {
return ))BSN(root(.isPerfect)(;}
:BSNבמחלקה public boolean isPerfect)( {
int h = height)(; //class method if )h==0( return true; if )h==1( return )!)left==null( && !)right==null((; return )!)left==null( && )left.height)( == h - 1( &&
))BSN(left(.isPerfect)( && !)right==null( &&)right.height)( == h - 1( && ))BSN(right(.isPerfect)((;}
עץ בינארי מושלם
28
![Page 29: Tirgul 13: Trees 1. הגדרות עץ – מודל מופשט של מבנה היררכי. עץ מורכב מאוסף של צמתים (קודקודים) עם יחס אבא-בן. שורש](https://reader030.vdocuments.mx/reader030/viewer/2022033012/56649d775503460f94a59d43/html5/thumbnails/29.jpg)
"שלם"בדיקה האם עץ בינארי הוא שלםראינו את ההגדרות הבאות:עץ בינארי
עץ בינארי מלא שבו לכל העלים אותו עומק- (perfect)עץ מושלם
ומתקייםhעץ בינארי שגובהו (complete )עץ בינארי שלם
h-2לכל הקדקודים שלו עד שכבה
בנים2יש בדיוק
hכל הקדקודים ברמה ה מרוכזים לשמאל
שלםעץ בינארי
29
![Page 30: Tirgul 13: Trees 1. הגדרות עץ – מודל מופשט של מבנה היררכי. עץ מורכב מאוסף של צמתים (קודקודים) עם יחס אבא-בן. שורש](https://reader030.vdocuments.mx/reader030/viewer/2022033012/56649d775503460f94a59d43/html5/thumbnails/30.jpg)
בהגדרה רקורסיבית
הוא ריקאו
הבן השמאלי שלו הוא שורש של עץ h-1 בגובה שלם
והבן הימני שלו הוא שורש של עץ h-2בגובה מושלם
אוהבן השמאלי שלו הוא שורש של עץ
h-1בגובה מושלם והבן הימני שלו הוא שורש של עץ
h-1 בגובה שלם
אם ורק אם:שלם הוא hעץ בינארי בגובה
30
![Page 31: Tirgul 13: Trees 1. הגדרות עץ – מודל מופשט של מבנה היררכי. עץ מורכב מאוסף של צמתים (קודקודים) עם יחס אבא-בן. שורש](https://reader030.vdocuments.mx/reader030/viewer/2022033012/56649d775503460f94a59d43/html5/thumbnails/31.jpg)
1 או 0אנחנו נבדוק כמה מקרי קצה כי אם גובה העץ הוא 1 או –0נקבל שדרוש לבדוק אם גובה תת העץ הוא
:BSTבמחלקה public boolean isComplete)( {
return ))BSN(root(.isComplete)(;}
:BSNבמחלקה public boolean isComplete)( { int h = height)(; //class method if )h==0( return true; if )h==1( return )!)left==null((; //the height is 2 and up: boolean has2Sons = )!)left==null( && !)right==null((; boolean case1=false, case2=false; if )has2Sons( { int leftH = left.height)(; int rightH = right.height)(; case1 = )))leftH == h-1( && ))BSN(left(.isComplete)(( && )rightH == h-2( && ))BSN(right(.isPerfect)((; case2 = )))leftH == h-1( && ))BSN(left(.isPerfect )(( && )rightH == h-1( && ))BSN(right(.isComplete)((; } return case1 || case2;}
שלםעץ בינארי
31
![Page 33: Tirgul 13: Trees 1. הגדרות עץ – מודל מופשט של מבנה היררכי. עץ מורכב מאוסף של צמתים (קודקודים) עם יחס אבא-בן. שורש](https://reader030.vdocuments.mx/reader030/viewer/2022033012/56649d775503460f94a59d43/html5/thumbnails/33.jpg)
סמסטר ב' מועד ב'2006מבחן 1 שאלה
סעיף א•( הינה עץ בינארי ובו המפתח בכל heapערימה )
קודקוד גדול )כפי שמוגדר על ידי הממשק Comparable .מהמפתחות בילדיו )
דוגמא – העץ להלן מהווה ערימה חוקית אך אם ילד שמאלי עם 7נוסיף לקודקוד בעל המפתח
נקבל עץ שאינו מהווה ערימה חוקית9מפתח
בכל הסעיפים בשאלה זו ניתן להניח כי אין בעץ •.nullמפתחות בעלי ערך
זהות למחלקות HeapNode ו- Heapהמחלקות •BinaryTree-ו BinaryNode כפי שנלמדו בכיתה
( ושיטות גישה constructorsומכילות בנאים )(accessors.בהן ניתן להשתמש מבלי לממשן )
8
73
621
33
![Page 34: Tirgul 13: Trees 1. הגדרות עץ – מודל מופשט של מבנה היררכי. עץ מורכב מאוסף של צמתים (קודקודים) עם יחס אבא-בן. שורש](https://reader030.vdocuments.mx/reader030/viewer/2022033012/56649d775503460f94a59d43/html5/thumbnails/34.jpg)
Heap למחלקות getKeysInRangeהוסיפו את השיטה HeapNodeו-
השיטה מחזירה רשימה משורשרת המכילה את כל המפתחות . ]cFirst, cLast[בתחום הסגור
לדוגמא – הקריאה• getKeysInRange) new Integer)3( , new Integer)8( (
על הערימה למעלה תחזיר רשימה המכילה את המפתחות )לא בהכרח בסדר זה(. 67,,8,3
8
73
621
34
![Page 35: Tirgul 13: Trees 1. הגדרות עץ – מודל מופשט של מבנה היררכי. עץ מורכב מאוסף של צמתים (קודקודים) עם יחס אבא-בן. שורש](https://reader030.vdocuments.mx/reader030/viewer/2022033012/56649d775503460f94a59d43/html5/thumbnails/35.jpg)
public class Heap{private HeapNode mRoot;public LinkedList getKeysInRange) Comparable cFirst,
Comparable cLast ({// Complete here
}}
public class HeapNode{private Comparable mKey;private HeapNode mLeft, mRight;public void getKeysInRange) Comparable cFirst,
Comparable cLast, LinkedList lKeys ({
// Complete here}
} 35
![Page 36: Tirgul 13: Trees 1. הגדרות עץ – מודל מופשט של מבנה היררכי. עץ מורכב מאוסף של צמתים (קודקודים) עם יחס אבא-בן. שורש](https://reader030.vdocuments.mx/reader030/viewer/2022033012/56649d775503460f94a59d43/html5/thumbnails/36.jpg)
In Heap class:public LinkedList getKeysInRange) Comparable cFirst,
Comparable cLast ( {LinkedList lKeys = new LinkedList)(;if) mRoot != null ( mRoot.getKeysInRange)cFirst,cLast,lKeys(;return lKeys;
}
36
![Page 37: Tirgul 13: Trees 1. הגדרות עץ – מודל מופשט של מבנה היררכי. עץ מורכב מאוסף של צמתים (קודקודים) עם יחס אבא-בן. שורש](https://reader030.vdocuments.mx/reader030/viewer/2022033012/56649d775503460f94a59d43/html5/thumbnails/37.jpg)
In HeapNode class:public void getKeysInRange) Comparable cFirst,
Comparable cLast,LinkedList lKeys ( {
if) mData.compareTo) cFirst ( >= 0 ({if) mData.compareTo) cLast ( <= 0 && mData.compareTo) cFirst ( >= 0 ( lKeys.add)mData (;if) mLeft != null ( mLeft.getKeysInRange)cFirst,cLast, lKeys(;if) mRight != null (
mRight.getKeysInRange)cFirst,cLast, lKeys(;}
}
37