1 Binary Trees Binary Trees Binary Search Trees Binary Search Trees CSE 30331 Lecture 13 –Trees.
Trees עצים ועצי חיפוש Chapter 5.5– Trees (91 – 97) Chapter 13– Binary Search...
-
date post
19-Dec-2015 -
Category
Documents
-
view
227 -
download
6
Transcript of Trees עצים ועצי חיפוש Chapter 5.5– Trees (91 – 97) Chapter 13– Binary Search...
![Page 1: Trees עצים ועצי חיפוש Chapter 5.5– Trees (91 – 97) Chapter 13– Binary Search Trees (244 – 262) חומר קריאה לשיעור זה Lecture3 of Geiger & Itai’s](https://reader035.fdocuments.net/reader035/viewer/2022062313/56649d395503460f94a13202/html5/thumbnails/1.jpg)
trees
חיפוש ועצי עצים
Chapter 5.5– Trees (91 – 97)
Chapter 13– Binary Search Trees (244 – 262)
זה לשיעור קריאה חומר
Lecture3 of Geiger & Itai’s slide brochure
www.cs.technion.ac.il/~dang/courseDS
Geiger & Itai, 2001
![Page 2: Trees עצים ועצי חיפוש Chapter 5.5– Trees (91 – 97) Chapter 13– Binary Search Trees (244 – 262) חומר קריאה לשיעור זה Lecture3 of Geiger & Itai’s](https://reader035.fdocuments.net/reader035/viewer/2022062313/56649d395503460f94a13202/html5/thumbnails/2.jpg)
cs,Technion
2trees
עצים
דוגמאות
. אילן יוחסין1
. ביטויים אריתמטיים2
אברהם
יצחקישמאל
עשויעקב
יוסף
מנשהאפריים
בנים 12
ובת 11עוד בנים
20 10
/
8 6
-
+
*
5 3
+
(5+3((*)20/10( + )8-6))
![Page 3: Trees עצים ועצי חיפוש Chapter 5.5– Trees (91 – 97) Chapter 13– Binary Search Trees (244 – 262) חומר קריאה לשיעור זה Lecture3 of Geiger & Itai’s](https://reader035.fdocuments.net/reader035/viewer/2022062313/56649d395503460f94a13202/html5/thumbnails/3.jpg)
cs,Technion
3trees
עצים
. עץ מנצחים )גביע(3
צה"לחיל הים
חיל האווירחיל היבשה
שריוןתותחנים
...חי"ר
חטיבת צנחניםחטיבת הנח"ל
856גדוד ...
934גדוד 1 מחלקה 2 מחלקה
1 כיתה 2 כיתה
אלון אבוטבול
. מבנה היררכי4
הפועל חיפהמכבי חיפה
מכבי חיפה
מכבי חיפה מכבי ת"א
![Page 4: Trees עצים ועצי חיפוש Chapter 5.5– Trees (91 – 97) Chapter 13– Binary Search Trees (244 – 262) חומר קריאה לשיעור זה Lecture3 of Geiger & Itai’s](https://reader035.fdocuments.net/reader035/viewer/2022062313/56649d395503460f94a13202/html5/thumbnails/4.jpg)
cs,Technion
4trees
- מכוונים לא (Undirected Graphs)גרפים
וקבוצת V המורכב מקבוצת צמתים ( V,E)גרף לא-מכוון הוא זוג . קשת V היא קבוצה בת שני איברים מתוך Eקשת ב- . Eקשתות
(.{i,j} )במקום הסימון המדויק יותר (i,j)מסומנת ע"י
V = a,b,c,d,e
E = (a,b), (a,d), (a,d) ,(b,c),(b,e),(c,c),(d,c),(d,e),(e,c)
חוג עצמי
., n = 5 m = 9. בדוגמא: | m = |E וכן|n = |Vנסמן
. n2 קטן בכל גרף מ- mמספר הקשתות
a b
d e
c
![Page 5: Trees עצים ועצי חיפוש Chapter 5.5– Trees (91 – 97) Chapter 13– Binary Search Trees (244 – 262) חומר קריאה לשיעור זה Lecture3 of Geiger & Itai’s](https://reader035.fdocuments.net/reader035/viewer/2022062313/56649d395503460f94a13202/html5/thumbnails/5.jpg)
5trees
מכוונים (Directed Graphs)גרפים וקבוצת V המורכב מקבוצת צמתים ( V,E) הוא זוג גרף מכוון
E V X V.קשתות
V = a,b,c,d,e
E = (a,b),(a,d),(b,c),(b,e),(c,c),(d,c),(d,e),(e,a),(e,c)
., n = 5 m = 9. בדוגמא: | m = |E וכן|n = |Vנסמן
כך שלכל זוג (v1,v2,..,vk) הוא סדרת צמתים (V,E)בגרף )מכוון( )מכוון( מסלול )מכוון( מעגל. המסלול נקרא E היא קשת ב-(vi,vi+1)צמתים עוקבים בסדרה,
הוא גרף G של גרף מכוון גרף התשתית (.(a,d,e,a) )לדוגמא, v1=vkאם אך ללא כוון. G ואותם קשתות כמו ב- Gכמו ב- לא-מכוון עם אותם צמתים
לדוגמא, הגרף בשקף הקודם הוא גרף התשתית של הגרף הנתון בשקף זה.
a b
d e
c
![Page 6: Trees עצים ועצי חיפוש Chapter 5.5– Trees (91 – 97) Chapter 13– Binary Search Trees (244 – 262) חומר קריאה לשיעור זה Lecture3 of Geiger & Itai’s](https://reader035.fdocuments.net/reader035/viewer/2022062313/56649d395503460f94a13202/html5/thumbnails/6.jpg)
cs,Technion
6trees
מכוונים עצים
הגדרות
v של בן u אם קיימת קשת מצומת u לצומת v .
u של אב v אם v בן של u .
דוגמאות
f בן של b
bשל אבe
הוא גרף מכוון ללא מעגלים )בגרף התשתית שלו( ואשר לו מקור עץ מכוון.שורשאחד בלבד הנקרא
b c
a
h i
d f
j k
ge
הוא צומת שאף קשת אינה מצביעה אליו.מקור
![Page 7: Trees עצים ועצי חיפוש Chapter 5.5– Trees (91 – 97) Chapter 13– Binary Search Trees (244 – 262) חומר קריאה לשיעור זה Lecture3 of Geiger & Itai’s](https://reader035.fdocuments.net/reader035/viewer/2022062313/56649d395503460f94a13202/html5/thumbnails/7.jpg)
cs,Technion
7trees
מכוונים עציםהגדרות
v של צאצא u אם קיים מסלול מכוון מצומת uל - v .
u של אב-קדמון v אם v צאצא של u.
v הוא עץ מכוון שצמתיו הם v ששורשו Gתת-עץ של , והקשתות שלו הן הקשתות vעצמו וכל הצאצאים של
.Gהמחברות צמתים אלו ב-
.v היא מספר הבנים של vדרגת צומת
הוא צמת ללא בנים.עלה
דוגמאות
g צאצא של a
b אב-קדמון של h
gתת העץ ששורשו צמתים ושתי 3מכיל
קשתות.
.2 היא aדרגת
h .הוא עלה
הוא צומת צומת פנימישאינו עלה.
b c
a
h i
d f
j k
ge
![Page 8: Trees עצים ועצי חיפוש Chapter 5.5– Trees (91 – 97) Chapter 13– Binary Search Trees (244 – 262) חומר קריאה לשיעור זה Lecture3 of Geiger & Itai’s](https://reader035.fdocuments.net/reader035/viewer/2022062313/56649d395503460f94a13202/html5/thumbnails/8.jpg)
cs,Technion
8trees
מכוונים עצים
הוא מספר vעומק של צומת vהקשתות משורש העץ אל
)המרחק מהשורש(.
הוא מספר vגובה של צומת לצאצא הרחוק ביותר vהקשתות מ-
)עלה(. vשל
הוא הגובה של שורשו.גובה העץ
2עומק
2גובה
b c
a
h i
d f
j k
ge
לעיתים נשמיט את הערה: החצים מתוך הבנה שכוון
הקשתות כלפי מטה. כמו כן לרוב נאמר עץ במקום עץ
מכוון.
b c
a
h i
d f
j k
ge
![Page 9: Trees עצים ועצי חיפוש Chapter 5.5– Trees (91 – 97) Chapter 13– Binary Search Trees (244 – 262) חומר קריאה לשיעור זה Lecture3 of Geiger & Itai’s](https://reader035.fdocuments.net/reader035/viewer/2022062313/56649d395503460f94a13202/html5/thumbnails/9.jpg)
cs,Technion
9trees
מסודריםעצים
הוא עץ מכוון עץ מסודר
שבו הבנים של כל צומת bמסודרים )משמאל לימין(. c
a
h i
d f
j k
ge
b
b c
a
h i
e f
j k
gd
b
למשל עץ זה שונה מהעץ העליון בגלל שסדר הבנים
השתנה.
![Page 10: Trees עצים ועצי חיפוש Chapter 5.5– Trees (91 – 97) Chapter 13– Binary Search Trees (244 – 262) חומר קריאה לשיעור זה Lecture3 of Geiger & Itai’s](https://reader035.fdocuments.net/reader035/viewer/2022062313/56649d395503460f94a13202/html5/thumbnails/10.jpg)
cs,Technion
10trees
בינריים עצים: עץ שבו לכל צומת שאינו עלה יש עץ בינרי
בן שמאלי ו/או בן ימני.
הוא מבנהעץ בינרי הגדרה רקורסיבית:
. ריק )ללא צמתים(, או 1
. מורכב משלושה חלקים: צומת הנקרא 2שורש, עץ בינרי הנקרא תת-עץ שמאלי, ועץ
בינרי הנקרא תת-עץ ימני.
![Page 11: Trees עצים ועצי חיפוש Chapter 5.5– Trees (91 – 97) Chapter 13– Binary Search Trees (244 – 262) חומר קריאה לשיעור זה Lecture3 of Geiger & Itai’s](https://reader035.fdocuments.net/reader035/viewer/2022062313/56649d395503460f94a13202/html5/thumbnails/11.jpg)
cs,Technion
11trees בינריים מלאים ושלמיםעצים
: עץ שבו לכל צומת (full)עץ בינרי מלא בנים.2פנימי
: עץ בינרי מלא שבו (complete)עץ בינרי שלםכל העלים באותו עומק.
: עץ בינרי שלם עץ בינרי כמעט שלםשהוצאו ממנו עלים )"מצד ימין"(.
![Page 12: Trees עצים ועצי חיפוש Chapter 5.5– Trees (91 – 97) Chapter 13– Binary Search Trees (244 – 262) חומר קריאה לשיעור זה Lecture3 of Geiger & Itai’s](https://reader035.fdocuments.net/reader035/viewer/2022062313/56649d395503460f94a13202/html5/thumbnails/12.jpg)
cs,Technion
12trees
שלמים בינריים עצים תכונות
:h עלים, וגובה L צמתים, nבעץ בינרי שלם בעל
i:ni = 2iמספר הצמתים בעומק 1.
L= nh= 2h מספר העלים:2.
122 :מספר הצמתים3. 1
00
hh
i
ih
i inn
:h = log2)n+1( - 1. הגובה4
:n - L = 2h - 1 = L - 1. מספר הצמתים הפנימיים5
0
1
2
3
![Page 13: Trees עצים ועצי חיפוש Chapter 5.5– Trees (91 – 97) Chapter 13– Binary Search Trees (244 – 262) חומר קריאה לשיעור זה Lecture3 of Geiger & Itai’s](https://reader035.fdocuments.net/reader035/viewer/2022062313/56649d395503460f94a13202/html5/thumbnails/13.jpg)
cs,Technion
13trees לעצים מימוש "מערכי"בינריים
iבן שמאלי של צומת 2iנמצא ב-
iבן ימני של צומת 2i+1נמצא ב-
iאבא של של צומת i/2 נמצא ב-
a
1
b
2
c
3
d
4
e
5
f
6
g
7
h
8
i
9
j
10
k
11
l
12
m n o
0 1413 15
158 109 11 12 13 14
b c
a
h i j k
d e
l m n o
f g4 5 6 7
3
1
2
יעיל רק עבור עצים שלמים !
![Page 14: Trees עצים ועצי חיפוש Chapter 5.5– Trees (91 – 97) Chapter 13– Binary Search Trees (244 – 262) חומר קריאה לשיעור זה Lecture3 of Geiger & Itai’s](https://reader035.fdocuments.net/reader035/viewer/2022062313/56649d395503460f94a13202/html5/thumbnails/14.jpg)
cs,Technion
14trees
באמצעות מצביעיםמימוש
typedef struct node{ DATA_Type value ;
struct node *left, *right; } NODE;
valueleft right
מבנה צומת:
b
h i k
d e
b
e
k
d
ih
b
1
d
2
e
3
h
4
i
5
f
6
k
70
![Page 15: Trees עצים ועצי חיפוש Chapter 5.5– Trees (91 – 97) Chapter 13– Binary Search Trees (244 – 262) חומר קריאה לשיעור זה Lecture3 of Geiger & Itai’s](https://reader035.fdocuments.net/reader035/viewer/2022062313/56649d395503460f94a13202/html5/thumbnails/15.jpg)
cs,Technion
15trees
בינרייםבעצים יםסיורpreorder
בקר בשורש
סייר בתת העץ השמאלי
סייר בתת העץ הימני
a b d e c f h g i
postorder
סייר בתת העץ השמאלי
סייר בתת העץ הימני
)חשוב ביטויים בקר בשורשאריתמטיים(
d e b h f i g c a
inorder
סייר בתת העץ השמאלי
בקר בשורש
סייר בתת העץ הימני
d b e a f h c i g
b c
a
d e
h i
f g
b c
a
d e
h i
f g
b c
a
d e
h i
f g
b c
a
d e
h i
f g
b c
a
d e
h i
f g
b c
a
d e
h i
f g
![Page 16: Trees עצים ועצי חיפוש Chapter 5.5– Trees (91 – 97) Chapter 13– Binary Search Trees (244 – 262) חומר קריאה לשיעור זה Lecture3 of Geiger & Itai’s](https://reader035.fdocuments.net/reader035/viewer/2022062313/56649d395503460f94a13202/html5/thumbnails/16.jpg)
cs,Technion
16trees
חישוב והמרה של ביטויים אריתמטיים
postorder
סייר בתת העץ השמאלי
סייר בתת העץ הימני
)חשב את ערך הביטוי או הדפס(. בקר בשורש
5 3 + 20 10 / 8 6* + - postfix
inorder
סייר בתת העץ השמאלי
בקר בשורש )הדפס(
סייר בתת העץ הימני
(5+3((*)20/10(+)8-6))
+ +
*
5 3
10 8
/ -
620
infixכתיב פולנינקראים postfixביטויי
Łukasievicz ע"ש שם הלוגיקאי הפולני
אין צורך בסוגריים: לכל ביטויpostfixבביטוי
postfix!יש לכל היותר פרוק יחיד
![Page 17: Trees עצים ועצי חיפוש Chapter 5.5– Trees (91 – 97) Chapter 13– Binary Search Trees (244 – 262) חומר קריאה לשיעור זה Lecture3 of Geiger & Itai’s](https://reader035.fdocuments.net/reader035/viewer/2022062313/56649d395503460f94a13202/html5/thumbnails/17.jpg)
cs,Technion
17trees
ביטוי ח באמצעות מחסניתpostfixישוב
5 5
3
8 8
2
8
20
postfixאלגוריתם לחישוב ביטוי
התחל עם מחסנית ריקה.1.
עבור על כל ביטוי משמאל לימין:2.
אם האיבר הבא הוא אופרנד- הכנס אותו למחסנית.3.
אם הוא פעולה – הפעל את הפעולה על שני האיברים4.
שבראש המחסנית והכנס את התוצאה למחסנית.
5 3 + 20 10 / 8 6 * + - :postfix8
2
8
6
8
2
2
8
4
328
20
10
8
2
8
![Page 18: Trees עצים ועצי חיפוש Chapter 5.5– Trees (91 – 97) Chapter 13– Binary Search Trees (244 – 262) חומר קריאה לשיעור זה Lecture3 of Geiger & Itai’s](https://reader035.fdocuments.net/reader035/viewer/2022062313/56649d395503460f94a13202/html5/thumbnails/18.jpg)
cs,Technion
18trees
פרוצדורת postorderמימוש
void postorder (NODE *T)
{
if (T = = NULL) return;
else{
postorder( T left); /* 1/*
postorder( T right); /* 2/*
“ visit”; /* 3/*
return};
}: יש לשנות תוכנית זו כך שתחשב ערך של ביטוי אריתמטי.Iתרגיל
: יש לכתוב תוכנית זו ללא רקורסיה )תוך שימוש במחסנית(. IIתרגיל
#2 ע"י החלפת שורה :הערה נקבל מימוש של #3עם שורה
.inorderסיור
valueleft right
מבנה צומת:
נשתמש במימוש "מצביעי"
![Page 19: Trees עצים ועצי חיפוש Chapter 5.5– Trees (91 – 97) Chapter 13– Binary Search Trees (244 – 262) חומר קריאה לשיעור זה Lecture3 of Geiger & Itai’s](https://reader035.fdocuments.net/reader035/viewer/2022062313/56649d395503460f94a13202/html5/thumbnails/19.jpg)
19trees
דוגמא לשימוש חביב
int height (NODE *T) {int L,R;
if (T = = NULL) return –1 else{
L = height(T left); R = height(T right); return 1 + max(L,R) ;
} }
פונקציה רקורסיבית לחישוב גובה העץ )דוגמא לסיור
postorder:)
![Page 20: Trees עצים ועצי חיפוש Chapter 5.5– Trees (91 – 97) Chapter 13– Binary Search Trees (244 – 262) חומר קריאה לשיעור זה Lecture3 of Geiger & Itai’s](https://reader035.fdocuments.net/reader035/viewer/2022062313/56649d395503460f94a13202/html5/thumbnails/20.jpg)
cs,Technion
20trees עצים מימושים של מסודרים
:d אם לכל צמת דרגה
נתן לייצג עץ מדרגה כלשהי בצורה הבאה:
child[0] child[d-1]…child[1]
value)s(
first-child next-brother
value(s)
b
e f
a
d
g
ki
c
h j
a
b c d
e f
h i j k
g
![Page 21: Trees עצים ועצי חיפוש Chapter 5.5– Trees (91 – 97) Chapter 13– Binary Search Trees (244 – 262) חומר קריאה לשיעור זה Lecture3 of Geiger & Itai’s](https://reader035.fdocuments.net/reader035/viewer/2022062313/56649d395503460f94a13202/html5/thumbnails/21.jpg)
cs,Technion
21trees
מסודריםעצים מה הקשר בין גובה העץ המקורי וגובה העץ הבינרי ?
a
b c d
e f
h i j k
g
hnew d horiginal כאשר ,d.הוא מספר הבנים המקסימלי בעץ המקורי
![Page 22: Trees עצים ועצי חיפוש Chapter 5.5– Trees (91 – 97) Chapter 13– Binary Search Trees (244 – 262) חומר קריאה לשיעור זה Lecture3 of Geiger & Itai’s](https://reader035.fdocuments.net/reader035/viewer/2022062313/56649d395503460f94a13202/html5/thumbnails/22.jpg)
cs,Technion
22trees
(Dictionary)מילון
פעולות:
)create)D יצירת מילון ריק. אתחול:•
)NULL. find)D,x או x שמפתחהD ב- החזר מצביע לרשומהחיפוש:•
)x.insert)D,x,info רשומה שמפתחה D הוסף ל- הוספה:•
)x.delete)D,x רשומה שמפתחה D סלק מ- הוצאה:•
מילון מאחסן אוסף של רשומות מהטיפוס )מפתח, אינפורמציה(. המפתח
.Uשונה )בד"כ( מרשומה לרשומה. אוסף המפתחות האפשריים מסומן ב-
מפתחות אפשריים לדוגמא: מספרים שלמים.
כללים:
• x שייך לקבוצת המפתחות U.
מופיע לכל היותר פעם אחת במילון )בדר"כ(.x כל •
![Page 23: Trees עצים ועצי חיפוש Chapter 5.5– Trees (91 – 97) Chapter 13– Binary Search Trees (244 – 262) חומר קריאה לשיעור זה Lecture3 of Geiger & Itai’s](https://reader035.fdocuments.net/reader035/viewer/2022062313/56649d395503460f94a13202/html5/thumbnails/23.jpg)
cs,Technion
23trees מילון, מבנה חיפוש ועצי חיפוש
)למשל כאשר מפתח הוא Uפעולות נוספות כאשר מוגדר סדר על מספר(:
. D החזר את המפתח המינימלי ב-מינימום:
בעל המפתח הקטןDהחזר מצביע לאיבר במילון עוקב:
. x ביותר שגדול מ-
)במקרה הגרוע ביותר( )O)log n: לבצע את כל הפעולות בזמן מטרה.בזמן ביצוע הפעולה הוא מספר המפתחות הנמצאים במילון nכאשר
. היא משפחה של מימושים למבנה חיפושעצי חיפוש:
next)D,x(
min)D(
מילון + מינימום + עוקב נקרא מבנה חיפוש
![Page 24: Trees עצים ועצי חיפוש Chapter 5.5– Trees (91 – 97) Chapter 13– Binary Search Trees (244 – 262) חומר קריאה לשיעור זה Lecture3 of Geiger & Itai’s](https://reader035.fdocuments.net/reader035/viewer/2022062313/56649d395503460f94a13202/html5/thumbnails/24.jpg)
cs,Technion
24trees
חיפוש כעץ בינרי עץ
x
zy
zxy
נשתמש בעץ בינרי מכוון.
בכל צומת נאחסן רשומה אחת מתוך המילון )או מפתח לאינפורמציה של הרשומה(.מצביעו
, כל xנשמור על הכלל הבא: עבור צומת כלשהו בעל מפתח וכל המפתחות בתת xהמפתחות בתת העץ השמאלי קטנים מ-
. xהעץ הימני גדולים מ-
![Page 25: Trees עצים ועצי חיפוש Chapter 5.5– Trees (91 – 97) Chapter 13– Binary Search Trees (244 – 262) חומר קריאה לשיעור זה Lecture3 of Geiger & Itai’s](https://reader035.fdocuments.net/reader035/viewer/2022062313/56649d395503460f94a13202/html5/thumbnails/25.jpg)
cs,Technion
25trees
חיפוש כעץ בינרי עץ
לא בעץ.x ריק, דווח ש-Tאם 1.
הערך שבשורש.yיהי 2.
.x, החזר מצביע לצומת המחזיק את y=x אם 3.
.T, המשך את החיפוש בתת העץ השמאלי של y > xאם 4.
.T (, המשך את החיפוש בתת העץ הימני של y < x אחרת )כאשר 5.
3 20
8
1 7 11
רק: הערה מופיעים בציור. במלואן הרשומות ולא המפתחות
:)find)T,xאלגוריתם החיפוש
![Page 26: Trees עצים ועצי חיפוש Chapter 5.5– Trees (91 – 97) Chapter 13– Binary Search Trees (244 – 262) חומר קריאה לשיעור זה Lecture3 of Geiger & Itai’s](https://reader035.fdocuments.net/reader035/viewer/2022062313/56649d395503460f94a13202/html5/thumbnails/26.jpg)
cs,Technion
26trees
חיפוש בעץ הכנסה
insert(T,4)
3 20
8
1 7 11
4
:)insert)T,xאלגוריתם הכנסה
.T בעץ החיפוש x חפש את1.
, עצור ודווח.T נמצא ב-xאם 2.
.v המפתח שנמצא ב-y ויהי x הצומת האחרון במסלול החיפוש של vיהי 3.
v
w
.v כבן שמאלי של x עם מפתח w הוסף צומת y>,x. אם 4
.v כבן ימני שלx עם מפתח w הוסף צומת , ( y < xכאשר . אחרת )5
![Page 27: Trees עצים ועצי חיפוש Chapter 5.5– Trees (91 – 97) Chapter 13– Binary Search Trees (244 – 262) חומר קריאה לשיעור זה Lecture3 of Geiger & Itai’s](https://reader035.fdocuments.net/reader035/viewer/2022062313/56649d395503460f94a13202/html5/thumbnails/27.jpg)
27trees חיפוש מעץ – המקרים הוצאההקלים צומת בעץ המיועד להוצאה.v יהי :אלגוריתם הוצאה
עלה, סלק אותו.vאם 1.
להצביע על הבן.v בן יחיד, תן לאבא של vאם ל-2.
2
1 4
5
8
7 9
63
2
4
5
8
7 9
63
delete 1
2
4
5
8
7 9
63
2
3
5
8
7 9
6
delete 4
![Page 28: Trees עצים ועצי חיפוש Chapter 5.5– Trees (91 – 97) Chapter 13– Binary Search Trees (244 – 262) חומר קריאה לשיעור זה Lecture3 of Geiger & Itai’s](https://reader035.fdocuments.net/reader035/viewer/2022062313/56649d395503460f94a13202/html5/thumbnails/28.jpg)
cs,Technion
28trees
חיפוש מעץ הוצאה צומת בעץ המיועד להוצאה.v. יהי אלגוריתם הוצאה
עלה, סלק אותו.vאם 1.
להצביע על הבן.v בן יחיד, תן לאבא של vאם ל-2.
)זהו הצומת המכיל את הערך הבא . inorder בסדר v הצומת העוקב ל-wאחרת: יהי 3. כלומר הצומת המתקבל ע"י פניה אחת ימינה ואח"כ כל הדרך שמאלה. vאחרי הערך שב-
בן אחד לכל היותר(.wשימו לב שלצומת
.w וצומת v. החלף בין צומת 4
כנדרש. 2 או 1 לכל היותר בן אחד. המשך בצעד v. כעת יש ל-5
2
3
5
8
7 9
6
2
3
6
8
7 9
delete 5v
w
w
v(.5 )צעד vנותר להוציא את
![Page 29: Trees עצים ועצי חיפוש Chapter 5.5– Trees (91 – 97) Chapter 13– Binary Search Trees (244 – 262) חומר קריאה לשיעור זה Lecture3 of Geiger & Itai’s](https://reader035.fdocuments.net/reader035/viewer/2022062313/56649d395503460f94a13202/html5/thumbnails/29.jpg)
cs,Technion
29trees
נוספתדוגמא
2
3
5
8
7 9
7.5
2
3
7
8
9
delete 5v
w
w
7.5
v
2
3
7
8
9
w
7.5
vdelete “v”
![Page 30: Trees עצים ועצי חיפוש Chapter 5.5– Trees (91 – 97) Chapter 13– Binary Search Trees (244 – 262) חומר קריאה לשיעור זה Lecture3 of Geiger & Itai’s](https://reader035.fdocuments.net/reader035/viewer/2022062313/56649d395503460f94a13202/html5/thumbnails/30.jpg)
cs,Technion
30trees
זמנים נתוח
זמן חיפוש/הכנסה/הוצאה הוא לינארי בגובה העץ.
מהו גובה העץ?
h= log n עץ שלם. מקרה טוב.
- h = n עץ הנראה כרשימה ליניארית. מקרה גרוע.1
ומהו הגובה הממוצע ?
![Page 31: Trees עצים ועצי חיפוש Chapter 5.5– Trees (91 – 97) Chapter 13– Binary Search Trees (244 – 262) חומר קריאה לשיעור זה Lecture3 of Geiger & Itai’s](https://reader035.fdocuments.net/reader035/viewer/2022062313/56649d395503460f94a13202/html5/thumbnails/31.jpg)
cs,Technion
31trees
גובה ממוצע
יוצר 1,2,3 ברור שצורת העץ נקבעת על פי סדר ההכנסה )למשל הסדרשיוצר עץ מאוזן(.2,1,3 לעומת שרשרת
.!n צמתים לעץ הוא nמספר אפשרויות )הסדרים( להכניס
.i את גובה העץ הנוצר בסדר ה-)h)iנסמן ב-
הגובה הממוצע מוגדר כדלקמן:
!
1
)(!
1 n
i
ihn
h
)O)log nניתן להראות שהגובה הממוצע שייך לקבוצה- .)O)log nכלומר בממוצע כל הפעולות מתבצעות בזמן
בספר הלימוד( מושמטת. נבחן 254-258ההוכחה )עמודים להוכחה: זמן בניה ממוצע של עץ טענה דומה אך קלה יותר
.)O)n log nחיפוש בינרי הוא
![Page 32: Trees עצים ועצי חיפוש Chapter 5.5– Trees (91 – 97) Chapter 13– Binary Search Trees (244 – 262) חומר קריאה לשיעור זה Lecture3 of Geiger & Itai’s](https://reader035.fdocuments.net/reader035/viewer/2022062313/56649d395503460f94a13202/html5/thumbnails/32.jpg)
32trees
בינרי חיפוש עץ של צפוי בניה זמןאקראית פרמוטציה מהכנסת המתקבל אקראי עץ בנית זמן את an …a1נחשב
. ריק לעץ
הוא האיברים שסדר bn …b1נניח
צמתים. n את מספר ההשוואות הממוצע הדרוש לבניית עץ בן )T)nנסמן ב-
צמתיםj-1 הוא מספר ההשוואות הממוצע הדרוש לבניית עץ בן )T)j-1לפיכך
צמתים.n-j הוא מספר ההשוואות הממוצע הדרוש לבניית עץ בן )T)n-jו-
משוואת ההפרשים המתאימה: )0)0(()()1()1(
1)(
1
TjnTjTnn
nTn
j
bj-1 …b1 bn …bj+1
bja1
![Page 33: Trees עצים ועצי חיפוש Chapter 5.5– Trees (91 – 97) Chapter 13– Binary Search Trees (244 – 262) חומר קריאה לשיעור זה Lecture3 of Geiger & Itai’s](https://reader035.fdocuments.net/reader035/viewer/2022062313/56649d395503460f94a13202/html5/thumbnails/33.jpg)
cs,Technion
33trees
ההפרשים משואת פתרון
1
11
)(2
)1()()1()1(1
)(n
j
n
j
jTn
njnTjTnn
nT
1
1
)(2)1()(n
j
jTnnnnT
)1(2)1(2)1()1()( nTnnTnnnT
2
1
)(2)2)(1())1()1(n
j
jTnnnTn
)1()1(22)( nTnnnnT
![Page 34: Trees עצים ועצי חיפוש Chapter 5.5– Trees (91 – 97) Chapter 13– Binary Search Trees (244 – 262) חומר קריאה לשיעור זה Lecture3 of Geiger & Itai’s](https://reader035.fdocuments.net/reader035/viewer/2022062313/56649d395503460f94a13202/html5/thumbnails/34.jpg)
cs,Technion
34trees
ההפרשים משואת פתרון)1()1(22)( nTnnnnT
n
nT
nnnn
nT )1(
)1(
2
1
2
1
)(
n
nT
n
)1(
1
2
)log()()(log1
)(nnOnTnO
n
nT
נגדיר1
)()(
n
nTng
)1(1
2)(
ngn
ng
)(log2)2(2
1
2)1(
1
2)( 1 nOHng
nnng
nng n
לכן
![Page 35: Trees עצים ועצי חיפוש Chapter 5.5– Trees (91 – 97) Chapter 13– Binary Search Trees (244 – 262) חומר קריאה לשיעור זה Lecture3 of Geiger & Itai’s](https://reader035.fdocuments.net/reader035/viewer/2022062313/56649d395503460f94a13202/html5/thumbnails/35.jpg)
cs,Technion
35trees
עוד על המספר ההרמוני
nH nn
lnlim
)(ln)1
(...57721.0ln1
1nO
non
iH
n
in
אוילר קבוע
על קבוע אוילר:
...402431042651209008201532860605772156649.0
ספרות במכנה(10242,080 לא ידוע אם הוא רציונלי )אם כן, יש לו יותר מ-
אוילר, שהגדיר את הקבוע, ציין כי הוא "ראוי להתייחסות רצינית"