עצים ועצי חיפוש חומר קריאה לשיעור זה Chapter 5.5– Trees (91 – 97)

Slides:



Advertisements
Similar presentations
1 Colorful XML: One Hierarchy Isn't Enough Authors : H. V. Jagadish, Laks V. S. Lakshmanan, Monica Scannapieco, Divesh Srivastava, Nuwee Wiwatwattana Presented.
Advertisements

1 Data Structures, CS, TAU, RB-Tree1 עץ אדום-שחור  עץ חיפוש בינארי  בכל צומת ביט אינפורמציה נוסף - צבע  עץ “כמעט מאוזן”  (O(log n במקרה גרוע ביותר.
מבוא למדעי המחשב לתעשייה וניהול
1 Trees CLRS: chapter A hierarchical combinatorial structure הגדרה רקורסיבית: 1. צומת בודד. זהו גם שורש העץ. 2. אם n הוא צומת ו T 1 ….T K הינם עצים,
טבלאות סמלים נכתב ע"י אלכס קוגן סמסטר חורף, תשס"ח.
גרף מכוון Directed Graph a b c f g ed h צמתים חוג עצמי קשתות.
מיון (Sorting) קלט : מערך בן n מספרים. פלט : מערך ובו המספרים אותם מאוחסנים בסדר עולה
Recitation #9. Q1 גרף מכוון מורכב מקבוצה של צמתים (nodes) ומקשתות מכוונות (arcs) המחברות ביניהם. כל קשת מכוונת יוצאת מצומת אחד ונכנסת לצומת אחר. ( בגרפים.
מתמטיקה בדידה תרגול 3.
Data Structures: Sorts, CS, TAU 1 שמושים ביישומים רבים יש n רשומות, לכל רשומה מפתח: K 1, …..,K n רוצים לסדר את הרשומות כך שהמפתחות לא בסדר יורד (יתכנו.
רקורסיות נושאי השיעור פתרון משוואות רקורסיביות שיטת ההצבה
גרפים ממשקלים גרף ממשקל הוא גרף עם משקל לכל קשת עץ פורש הוא עץ שצמתיו הם כל הצמתים של הגרף וקשתותיו הן קשתות הגרף.
תרגול 8 עצי B+ אינדקס משני.
חורף - תשס " ג DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.
R. Bar-Yehuda © 1 קומבינטוריקה למדעי - המחשב – הרצאה #14 Graph theory – תורת הגרפים Chapter 1: PATHS IN GRAPHS – 1. מסלולים.
עבודה סמינריונית Prelude to Ukkonen algorithm ON-LINE CONSTRUCTION OF SUFFIX TREES מגישים : עיד מוחמד טיבי פיראס.
- אמיר רובינשטיין Union-Find 1. הגדרה: מבנה נתונים, אשר בהינתן אוסף איברים המחולקים לקבוצות זרות, מאפשר ביצוע הפעולות הבאות: Find(i) – החזר.
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
1 Trees CLRS: chapter A hierarchical combinatorial structure הגדרה רקורסיבית: 1. צומת בודד. זהו גם שורש העץ. 2. אם n הוא צומת ו T 1 ….T K הינם עצים,
1 Data Structures, CS, TAU, Splay Tree Splay Tree  מימוש של עץ חיפוש בינארי  מטרה לדאוג ל- Amortized Time  פעולה בודדת יכולה לקחת O(N)  אבל כל רצף.
בהסתברות לפחות למצא בעיה במודל PAC עבור בהסתברות ε הפונקציה f טועה מודל ONLINE 1. אחרי כל טעות הפונקציה משתפרת 2. מספר הטעיות קטן.
סמינר במדעי המחשב 3 עודד פרץ משפט הנורמליזציה החזקה.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
Data Structures, CS, TAU, Splay Tree 1 Splay Tree - עץ חיפוש בינארי - מטרה לדאוג ל - Amortized Time - פעולה בודדת יכולה לקחת O(N) - אבל כל רצף M פעולות.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
תורת הקבוצות חלק ב'. קבוצה בת מניה הגדרה: קבוצה אינסופית X היא ניתנת למניה אם יש התאמה חד-חד ערכית בין X לבין .
תכנות תרגול 6 שבוע : תרגיל שורש של מספר מחושב לפי הסדרה הבאה : root 0 = 1 root n = root n-1 + a / root n-1 2 כאשר האיבר ה n של הסדרה הוא קירוב.
ערמות ; מבני נתונים 09 מבוסס על מצגות של ליאור שפירא, חיים קפלן, דני פלדמן וחברים.
מודל ONLINE לומדמורה 1. כל ניתן לחישוב בזמן פולינומיאלי 2. אחרי מספר פולינומיאלי של טעיות ( ) הלומד לא טועה ז"א שווה ל- Littlestone 1988.
תרגול 7 עצי B
2-3 trees עצי 3-2 ועצי דרגות Chapter 19: B trees (381 – 397) Chapter 15: Augmenting data structures (281 – 290) חומר קריאה לשיעור זה Lecture5 of Geiger.
מבוא כללי למדעי המחשב תרגול 3. לולאות while לולאות while while (condition) { loop body } במקרה של קיום התנאי מתבצע גוף הלולאה ברגע שהתנאי לא מתקיים נצא.
Sorting II: הפרד ומשול. Last week: in-place sorting Bubble Sort – O(n 2 ) comparisons –O(n) best case comparisons, O(n 2 ) exchanges Selection Sort -
שאלה 1 נתון כביש ישר עם תחנות דלק בנקודות , בנקודת המוצא נתונה מכונית עם תא דלק שמספיק ל-100 ק"מ. מחיר מילוי תא הדלק בתחנה.
1 ייצוג באמצעות עצים שונים מתוחכם רק לקבוצות גדולות (תקורה בפעולות ובתכנות!!!) עצי חיפוש בינאריים BINARY SEARCH TREES תחום סדור (> < =) תחום איברים גדול.
1 שמושים ביישומים רבים יש n רשומות, לכל רשומה מפתח: K 1,…..,K n רוצים לסדר את הרשומות כך שהמפתחות לא בסדר יורד (יתכנו כפולים) קריטריונים ליעילות: לא תמיד.
גרפים - Graphs גרף G(V,E) מורכב מקבוצת צמתים V וקבוצת קשתות E.
עצים מאוזנים הגדרה: משפחת עצים תקרא מאוזנת אם ,h(T) = O(log n) באשר T הוא עץ במשפחה, n הוא מספר הצמתים ב-T ו-h(T) הוא הגובה של T עצי (Adelson-Velsky,
מערכים עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר int grade1, grade2, …, grade20; int grade1, grade2, …, grade20;
מודל הלמידה מדוגמאות Learning from Examples קלט: אוסף של דוגמאות פלט: קונסיסטנטי עם פונקציה f ב- C ז"א קונסיסטנטי עם S ז"א מודל הלמידה מדוגמאות Learning.
עקרון ההכלה וההדחה.
יחס סדר חלקי.
מבוא למדעי המחשב תרגול 3 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
Data Structures, CS, TAU, RB-Tree 1 עץ אדום-שחור - עץ חיפוש בינארי - בכל צומת ביט אינפורמציה נוסף - צבע « עץ “ כמעט מאוזן ” « (O(log n במקרה גרוע ביותר.
Markov Decision Processes (MDP) תומר באום Based on ch. 14 in “Probabilistic Robotics” By Thrun et al. ב"הב"ה.
מודל הלמידה מדוגמאות Learning from Examples קלט: אוסף של דוגמאות פלט: קונסיסטנטי עם פונקציה f ב- C ז"א קונסיסטנטי עם S ז"א.
1 Data Structures, CS, TAU, RB-Tree1 עץ אדום-שחור  עץ חיפוש בינארי  בכל צומת ביט אינפורמציה נוסף - צבע  עץ “כמעט מאוזן”  (O(log n במקרה גרוע ביותר.
Tirgul 13: Trees 1. הגדרות עץ – מודל מופשט של מבנה היררכי. עץ מורכב מאוסף של צמתים (קודקודים) עם יחס אבא-בן. שורש בעץ – צומת ללא אבא. בכל עץ יש בדיוק.
עצים בינאריים - תזכורת דרגת צומת שורש עלה צומת פנימי מרחק בין 2 צמתים
1 - גמישות בבינאריות גמישות בעומק - עץ חיפוש בינארי: ממוצע O(log n) גרוע ביותר (O(n - היינו רוצים לשמור את העץ מאוזן תמיד Data Structures, CS, TAU
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
מבנה מחשבים תרגול מספר 3. טענה על עצים משפט: בעץ שדרגת כל קודקודיו חסומה ב-3, מספר העלים ≤ מספר הקודקודים הפנימיים + 2. הוכחה: באינדוקציה על n, מספר הקודקודים.
Lecture 13 Maximal Accurate Forests From Distance Matrix.
(C) סיון טל גילוי מידע וזיהוי תבניות תרגול מס. 9 גילוי מידע וזיהוי תבניות תרגול מס. 9 דחיסת נתונים מהו קידוד תכונות של קידודים אי - שוויון קרפט.
תרגול 4 21/3/2007 מבני נתונים 07b ליאור שפירא. תזכורת – B-trees  לכל צומת x יש השדות הבאים n[x] מס ' מפתחות ב -x המפתחות עצמם בסדר לא יורד כל צומת פנימי.
Eddie Bortnikov/Aran Bergman, Principles of Reliable Distributed Systems, Technion EE, Spring Principles of Reliable Distributed Systems Recitation.
1 Trees CLRS: chapter A hierarchical combinatorial structure הגדרה רקורסיבית: 1. צומת בודד. זהו גם שורש העץ. 2. אם n הוא צומת ו T 1 ….T K הינם עצים,
Data Structures Hanoch Levi and Uri Zwick March 2011 Lecture 3 Dynamic Sets / Dictionaries Binary Search Trees.
מספרים אקראיים ניתן לייצר מספרים אקראיים ע"י הפונקציה int rand(void);
Tirgul 12 Trees 1.
מבוא למדעי המחשב סיבוכיות.
אינדקסינג והשינג (indexing & hashing)
ערבול (Hashing) חומר קריאה לשיעור זה:
SQL בסיסי – הגדרה אינדוקטיבית
תירגול 14: מבני נתונים דינאמיים
הרצאה 07 עצים קרן כליף.
מבני נתונים עצים קרן כליף.
Data Structures, CS, TAU, Splay Tree
Marina Kogan Sadetsky –
Randomized Search Trees
Presentation transcript:

עצים ועצי חיפוש חומר קריאה לשיעור זה Chapter 5.5– Trees (91 – 97) Lecture3 of Geiger & Itai’s slide brochure www.cs.technion.ac.il/~dang/courseDS עצים ועצי חיפוש חומר קריאה לשיעור זה Chapter 5.5– Trees (91 – 97) Chapter 13– Binary Search Trees (244 – 262) Geiger & Itai, 2001

עצים אברהם ישמאל יצחק יעקב עשו יוסף אפריים מנשה דוגמאות 1. אילן יוחסין 12 בנים עוד 11בנים ובת דוגמאות 1. אילן יוחסין 2. ביטויים אריתמטיים 20 10 / 8 6 - + * 5 3 (5+3)*((20/10) + (8-6)) cs,Technion

עצים מכבי חיפה 3. עץ מנצחים (גביע) הפועל חיפה מכבי ת"א 4. מבנה היררכי צה"ל חיל הים חיל האוויר חיל היבשה שריון תותחנים ... חי"ר חטיבת צנחנים חטיבת הנח"ל גדוד 856 גדוד 934 מחלקה 1 מחלקה 2 כיתה 1 כיתה 2 אלון אבוטבול cs,Technion

גרפים לא-מכוונים (Undirected Graphs) גרף לא-מכוון הוא זוג (V,E) המורכב מקבוצת צמתים V וקבוצת קשתות E . קשת ב-E היא קבוצה בת שני איברים מתוך V. קשת מסומנת ע"י (i,j) (במקום הסימון המדויק יותר {i,j}). a b d e c חוג עצמי 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 = |V| וכן m = |E| . בדוגמא: n = 5 m = 9, . מספר הקשתות m קטן בכל גרף מ- n2 . cs,Technion

גרפים מכוונים (Directed Graphs) גרף מכוון הוא זוג (V,E) המורכב מקבוצת צמתים V וקבוצת קשתות .E  V X V a b d e c 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 = |V| וכן m = |E| . בדוגמא: n = 5 m = 9, . מסלול (מכוון) בגרף (מכוון) (V,E) הוא סדרת צמתים (v1,v2,..,vk) כך שלכל זוג צמתים עוקבים בסדרה, (vi,vi+1) היא קשת ב-E. המסלול נקרא מעגל (מכוון) אם v1=vk (לדוגמא, (a,d,e,a)). גרף התשתית של גרף מכוון G הוא גרף לא-מכוון עם אותם צמתים כמו ב-G ואותם קשתות כמו ב-G אך ללא כוון. לדוגמא, הגרף בשקף הקודם הוא גרף התשתית של הגרף הנתון בשקף זה.

עצים מכוונים מקור הוא צומת שאף קשת אינה מצביעה אליו. עץ מכוון הוא גרף מכוון ללא מעגלים (בגרף התשתית שלו) ואשר לו מקור אחד בלבד הנקרא שורש. הגדרות v בן של u אם קיימת קשת מצומת u לצומת v. u אב של v אם v בן של u. דוגמאות f בן של b b אב של e b c a h i d f j k g e cs,Technion

צומת פנימי הוא צומת שאינו עלה. עצים מכוונים דוגמאות g צאצא של a b אב-קדמון של h תת העץ ששורשו g מכיל 3 צמתים ושתי קשתות. דרגת a היא 2. h הוא עלה. הגדרות v צאצא של u אם קיים מסלול מכוון מצומת u ל- v. u אב-קדמון של v אם v צאצא של u. תת-עץ של G ששורשו v הוא עץ מכוון שצמתיו הם v עצמו וכל הצאצאים של v, והקשתות שלו הן הקשתות המחברות צמתים אלו ב- G. דרגת צומת v היא מספר הבנים של v. עלה הוא צמת ללא בנים. b c a h i d f j k g e צומת פנימי הוא צומת שאינו עלה. cs,Technion

עצים מכוונים b c a h i d f j k g e עומק 2 גובה 2 b c a h i d f j k g e עומק של צומת v הוא מספר הקשתות משורש העץ אל v (המרחק מהשורש). גובה של צומת v הוא מספר הקשתות מ-v לצאצא הרחוק ביותר של v (עלה). גובה העץ הוא הגובה של שורשו. הערה: לעיתים נשמיט את החצים מתוך הבנה שכוון הקשתות כלפי מטה. כמו כן לרוב נאמר עץ במקום עץ מכוון. b c a h i d f j k g e cs,Technion

עצים מסודרים a עץ מסודר הוא עץ מכוון שבו הבנים של כל צומת מסודרים (משמאל לימין). b b c d e f g h i j k a למשל עץ זה שונה מהעץ העליון בגלל שסדר הבנים השתנה. b b c e d f g cs,Technion h i j k

עצים בינריים עץ בינרי: עץ שבו לכל צומת שאינו עלה יש בן שמאלי ו/או בן ימני. הגדרה רקורסיבית: עץ בינרי הוא מבנה 1. ריק (ללא צמתים), או 2. מורכב משלושה חלקים: צומת הנקרא שורש, עץ בינרי הנקרא תת-עץ שמאלי, ועץ בינרי הנקרא תת-עץ ימני. cs,Technion

עצים בינריים מלאים ושלמים עץ בינרי מלא(full) : עץ שבו לכל צומת פנימי 2 בנים. עץ בינרי שלם(complete) : עץ בינרי מלא שבו כל העלים באותו עומק. עץ בינרי כמעט שלם: עץ בינרי שלם שהוצאו ממנו עלים ("מצד ימין"). cs,Technion

תכונות עצים בינריים שלמים בעץ בינרי שלם בעל n צמתים, L עלים, וגובה h: מספר הצמתים בעומק i:ni = 2i מספר העלים: L= nh= 2h מספר הצמתים : 4. הגובהh = log2(n+1) - 1 : 5. מספר הצמתים הפנימייםn - L = 2h - 1 = L - 1 : 1 2 3 cs,Technion

מימוש "מערכי" לעצים בינריים 15 8 10 9 11 12 13 14 b c a h i j k d e l m n o f g 4 5 6 7 3 1 2 בן שמאלי של צומת 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 14 13 15 יעיל רק עבור עצים שלמים ! cs,Technion

מימוש באמצעות מצביעים typedef struct node { DATA_Type value; struct node *left, *right; } NODE; value left right מבנה צומת: b e k d i h b h i k d e b 1 d 2 e 3 h 4 i 5 f 6 k 7 cs,Technion

סיורים בעצים בינריים 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 preorder בקר בשורש סייר בתת העץ השמאלי סייר בתת העץ הימני a b d e c f h g i b b b c c c d d d e e e f f f g g g h h h i i i inorder סייר בתת העץ השמאלי בקר בשורש סייר בתת העץ הימני d b e a f h c i g postorder סייר בתת העץ השמאלי סייר בתת העץ הימני בקר בשורש (חשוב ביטויים אריתמטיים) d e b h f i g c a cs,Technion

חישוב והמרה של ביטויים אריתמטיים inorder סייר בתת העץ השמאלי בקר בשורש (הדפס) סייר בתת העץ הימני (5+3)*((20/10)+(8-6)) + * 5 3 10 8 / - 6 20 infix postorder סייר בתת העץ השמאלי סייר בתת העץ הימני בקר בשורש (חשב את ערך הביטוי או הדפס). 5 3 + 20 10 / 8 6 - + * postfix ביטויי postfix נקראים כתיב פולני ע"ש שם הלוגיקאי הפולני Łukasievicz בביטוי postfix אין צורך בסוגריים: לכל ביטוי postfix יש לכל היותר פרוק יחיד! cs,Technion

חישוב ביטוי postfix באמצעות מחסנית התחל עם מחסנית ריקה. עבור על כל ביטוי משמאל לימין: אם האיבר הבא הוא אופרנד- הכנס אותו למחסנית. אם הוא פעולה – הפעל את הפעולה על שני האיברים שבראש המחסנית והכנס את התוצאה למחסנית. 8 2 6 8 20 10 8 2 8 2 5 3 8 20 8 2 8 4 5 8 32 5 3 + 20 10 / 8 6 - + * :postfix cs,Technion

מימוש פרוצדורת postorder void postorder (NODE *T) { if (T = = NULL) return; else { postorder( T  left); /* 1*/ postorder( T  right); /* 2*/ “visit”; /* 3*/ return;} } נשתמש במימוש "מצביעי" value left right מבנה צומת: תרגיל I: יש לשנות תוכנית זו כך שתחשב ערך של ביטוי אריתמטי. תרגיל II: יש לכתוב תוכנית זו ללא רקורסיה (תוך שימוש במחסנית). הערה: ע"י החלפת שורה #2 עם שורה #3 נקבל מימוש של סיור inorder. cs,Technion

דוגמא לשימוש חביב פונקציה רקורסיבית לחישוב גובה העץ (דוגמא לסיור postorder): 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) ; }

מימושים של עצים מסודרים child[0] child[d-1] … child[1] value(s) אם לכל צמת דרגה d : נתן לייצג עץ מדרגה כלשהי בצורה הבאה: first-child next-brother value(s) a b c d e f h i j k g b e f a d g k i c h j cs,Technion

עצים מסודרים מה הקשר בין גובה העץ המקורי וגובה העץ הבינרי ? a b c d e f g h i j k , כאשר d הוא מספר הבנים המקסימלי בעץ המקורי. hnew  d horiginal cs,Technion

מילון (Dictionary) מילון מאחסן אוסף של רשומות מהטיפוס (מפתח, אינפורמציה). המפתח שונה (בד"כ) מרשומה לרשומה. אוסף המפתחות האפשריים מסומן ב-U. מפתחות אפשריים לדוגמא: מספרים שלמים. פעולות: אתחול: יצירת מילון ריק. create(D) חיפוש: החזר מצביע לרשומה ב- D שמפתחהx או NULL. find(D,x) הוספה: הוסף ל- D רשומה שמפתחה x.insert(D,x,info) הוצאה: סלק מ- D רשומה שמפתחה x.delete(D,x) כללים: x שייך לקבוצת המפתחות U. כל x מופיע לכל היותר פעם אחת במילון (בדר"כ). cs,Technion

מילון, מבנה חיפוש ועצי חיפוש פעולות נוספות כאשר מוגדר סדר על U (למשל כאשר מפתח הוא מספר): מינימום: החזר את המפתח המינימלי ב-D . עוקב: החזר מצביע לאיבר במילון D בעל המפתח הקטן ביותר שגדול מ- x. min(D) next(D,x) מילון + מינימום + עוקב נקרא מבנה חיפוש מטרה: לבצע את כל הפעולות בזמן O(log n) (במקרה הגרוע ביותר) כאשר n הוא מספר המפתחות הנמצאים במילון בזמן ביצוע הפעולה. עצי חיפוש: היא משפחה של מימושים למבנה חיפוש. cs,Technion

עץ בינרי כעץ חיפוש נשתמש בעץ בינרי מכוון. בכל צומת נאחסן רשומה אחת מתוך המילון (או מפתח ומצביע לאינפורמציה של הרשומה). נשמור על הכלל הבא: עבור צומת כלשהו בעל מפתח x, כל המפתחות בתת העץ השמאלי קטנים מ-x וכל המפתחות בתת העץ הימני גדולים מ- x. x y z cs,Technion

אלגוריתם החיפושfind(T,x) : עץ בינרי כעץ חיפוש 3 20 8 1 7 11 הערה: בציור מופיעים רק המפתחות ולא הרשומות במלואן. אלגוריתם החיפושfind(T,x) : אם T ריק, דווח ש-x לא בעץ. יהי y הערך שבשורש. אם y=x , החזר מצביע לצומת המחזיק את x. אם y > x, המשך את החיפוש בתת העץ השמאלי של T. אחרת (כאשר y < x ), המשך את החיפוש בתת העץ הימני של T. cs,Technion

הכנסה בעץ חיפוש אלגוריתם הכנסהinsert(T,x) : חפש את x בעץ החיפוש T. יהי v הצומת האחרון במסלול החיפוש של x ויהי y המפתח שנמצא ב-v. v w 4. אם y>,x הוסף צומת w עם מפתח x כבן שמאלי של v. 5. אחרת ( כאשר y < x ), הוסף צומת w עם מפתח x כבן ימני של v. insert(T,4) 3 20 8 1 7 11 4 cs,Technion

הוצאה מעץ חיפוש – המקרים הקלים אלגוריתם הוצאה: יהי v צומת בעץ המיועד להוצאה. אם v עלה, סלק אותו. אם ל-v בן יחיד, תן לאבא של v להצביע על הבן. 2 1 4 5 8 7 9 6 3 delete 1 2 4 5 8 7 9 6 3 delete 4

הוצאה מעץ חיפוש אלגוריתם הוצאה. יהי v צומת בעץ המיועד להוצאה. אם ל-v בן יחיד, תן לאבא של v להצביע על הבן. אחרת: יהי w הצומת העוקב ל-v בסדר inorder. (זהו הצומת המכיל את הערך הבא אחרי הערך שב- v כלומר הצומת המתקבל ע"י פניה אחת ימינה ואח"כ כל הדרך שמאלה. שימו לב שלצומת w בן אחד לכל היותר). 4. החלף בין צומת v וצומת w. 5. כעת יש ל-v לכל היותר בן אחד. המשך בצעד 1 או 2 כנדרש. v w 5 6 delete 5 2 8 2 8 3 7 9 3 7 9 w v cs,Technion 6 נותר להוציא את v (צעד 5).

דוגמא נוספת v w w v delete 5 delete “v” 2 3 5 8 7 9 7.5 2 3 7 8 9 7.5 cs,Technion

נתוח זמנים זמן חיפוש/הכנסה/הוצאה הוא לינארי בגובה העץ. מהו גובה העץ? מקרה טוב. עץ שלם. h= log n מקרה גרוע. עץ הנראה כרשימה ליניארית. h = n - 1 ומהו הגובה הממוצע ? cs,Technion

גובה ממוצע ברור שצורת העץ נקבעת על פי סדר ההכנסה (למשל הסדר1,2,3 יוצר שרשרת לעומת 2,1,3שיוצר עץ מאוזן). מספר אפשרויות (הסדרים) להכניס n צמתים לעץ הוא n!. נסמן ב- h(i) את גובה העץ הנוצר בסדר ה-i. הגובה הממוצע מוגדר כדלקמן: ניתן להראות שהגובה הממוצע שייך לקבוצה- O(log n) כלומר בממוצע כל הפעולות מתבצעות בזמן O(log n). ההוכחה (עמודים 254-258 בספר הלימוד) מושמטת. נבחן טענה דומה אך קלה יותר להוכחה: זמן בניה ממוצע של עץ חיפוש בינרי הוא O(n log n). cs,Technion

זמן בניה צפוי של עץ חיפוש בינרי נחשב את זמן בנית עץ אקראי המתקבל מהכנסת פרמוטציה אקראיתan …a1 לעץ ריק. נניח שסדר האיברים הוא bn …b1 a1 bj bj-1 …b1 bn …bj+1 נסמן ב- T(n) את מספר ההשוואות הממוצע הדרוש לבניית עץ בן n צמתים. לפיכך T(j-1) הוא מספר ההשוואות הממוצע הדרוש לבניית עץ בן j-1 צמתים T(n-j) הוא מספר ההשוואות הממוצע הדרוש לבניית עץ בן n-j צמתים. משוואת ההפרשים המתאימה:

פתרון משואת ההפרשים cs,Technion

פתרון משואת ההפרשים נגדיר לכן cs,Technion

עוד על המספר ההרמוני קבוע אוילר על קבוע אוילר: אוילר, שהגדיר את הקבוע, ציין כי הוא "ראוי להתייחסות רצינית" לא ידוע אם הוא רציונלי (אם כן, יש לו יותר מ- 10242,080ספרות במכנה) cs,Technion