מבני נתונים תרגיל 4 פתרון

Similar documents
עץ תורשה מוגדר כך:שורש או שורש ושני בנים שכל אחד מהם עץ תורשה,כך שערך השורש גדול או שווה לסכום הנכדים(נכד-הוא רק בן של בן) נתון העץ הבא:

קשירות.s,t V שני צמתים,G=(V,E) קלט: גרף מכוון מ- s t ל- t ; אחרת.0 אם יש מסלול מכוון פלט: הערה: הגרף נתון בייצוג של רשימות סמיכות.

הגדרה: משפחת עצים תקרא מאוזנת אם (n.h(t) = O(log

תרגול 11 תור עץ חיפוש בינארי

תרגול נושאי התרגול כעץ חיפוש בינארי : העץ הימני. Inorder(x) 1) if x NULL 2) then Inorder(left(x)) 3) print key[x] 4) Inorder(right(x))

Depth-First Search DFS

Practical Session No. 13 Amortized Analysis, Union/Find

חזרה, מיונים פולינה לוצקר

יסודות מבני נתונים. תרגול :9 ערימה - Heap

מבוא לתכנות ב- JAVA תרגול 7

תרגול 8. Hash Tables

סיכום מבני נתונים )שיעור( מרצה: אלכס סמורודניצקי. להערות: אמיר נווה

תכנון אלגוריתמים, אביב 2010, תרגול מס' 7 סריקה לעומק, מיון טופולוגי, רכיבים קשירים היטב. time time 1

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

פרק היררכי

קובץ שאלות פתורות אביב 2102

אוניברסיטת בן גוריון בנגב

תרגול מס' 01 אלגוריתם דיניץ

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

ASP.Net MVC + Entity Framework Code First.

מבני נתונים תרגיל 5 שאלות לגבי העבודה יש להעלות בפורום של הקורס או בשעות הקבלה של המרצה או המתרגל האחראיים על העבודה.

בוחן בתכנות בשפת C בצלחה

מכונת מצבים סופית תרגול מס' 4. Moshe Malka & Ben lee Volk

Rules Game (through lesson 30) by Nancy Decker Preparation: 1. Each rule board is immediately followed by at least three cards containing examples of

A JEW WALKS INTO A BAR: JEWISH IDENTITY IN NOT SUCH JEWISH PLACES

A R E Y O U R E A L L Y A W A K E?

Hebrew Ulpan HEB Young Judaea Year Course in Israel American Jewish University College Initiative

Advisor Copy. Welcome the NCSYers to your session. Feel free to try a quick icebreaker to learn their names.

תוכן העניינים: פרק סדרות סיכום תכונות הסדרה החשבונית:... 2 תשובות סופיות:...8 סיכום תכונות הסדרה ההנדסית:...10

טכנולוגיית WPF מספקת למפתחים מודל תכנות מאוחד לחוויית בניית יישומיי

מושגים בסיסיים תלמידים והורים יקרים,

THINKING ABOUT REST THE ORIGIN OF SHABBOS

םימתירוגלאו םינותנ ינבמ המירעו תינס, חמ רות רקצול הנילופ

הצגת המשחק תלמידים משחקים סיום. פתיחה 12 min. min. min. min פתיחה. Copyright 2015

4...Informed Search Strategies Partial Order Planning 29...Hierarchical Decomposition Reenforcement Learning 40...Unsupervised Learning

. s בנוסף, המרחק בקשתות על העץ מ- s לכל צומת ב- R הוא מינימאלי. נותן פיתרון ל: מציאת מסלול קצר ביותר מהמקור לכל צומת. גלוי צמתים ברי הגעה מהמקור.

פרק מיון וחיפוש - לשם מה? הגדרה

Computer Structure. Exercise #1 יש להגיש את התשובות הסופיות על גבי טופס זה.

מבוא לרשתות - תרגול מס' 11 Transparent Bridges

שאלות חזרה לקראת מבחן מפמ"ר אינטרנט וסייבר

לצפייה בפתרון בווידאו לתרגילים שבחוברת, כנסו ל "סטטיסטיקה והסתברות" בשאלון 802 שבאתר

סיבוכיות זמן ריצה רדוקציות ושלמות ב- NP המחלקה P הגדרה: = המחלקה NP הגדרה: שפה סגירות שפות הגדרה: רדוקציה

תורשכ ירפס לכ ץבוק " ב י קלח יללכ רעש

Name Page 1 of 6. דף ט: This week s bechina starts at the two dots in the middle of

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

FILED: NEW YORK COUNTY CLERK 07/16/2014 INDEX NO /2014 NYSCEF DOC. NO. 134 RECEIVED NYSCEF: 07/16/2014 EXHIBIT 37

SHABBOS, 10 TAMMUZ, 5778

תכנית סטארט עמותת יכולות, בשיתוף משרד החינוך א נ ג ל י ת שאלון א' Corresponds with Module A (Without Access to Information from Spoken Texts) גרסה א'

שנת לימודים סמסטר מועד ניתן בתאריך מרצה מתרגל שאלות. 0, 3 r. n ויהי : 2 איתי בארלי גרסה / /1/14 פרופ' אהוד לרר איתי בארלי. a.

ל"תוכנה" שכותבים, כמו פונקציה זו, קוראים "קוד"

אלגוריתמים 1 דפי עזר

Expressions (ex 8) Wild World (ex 7) Cars (ex 9)

JUDAISM AND INDIVIDUALITY

הקיטסיגול הרבחה יעדמל בלושמה גוחה

BEAUTY AND UGLINESS. Global Day of Jewish Learning: Curriculum. A Project of the Aleph Society

מבחן מועד ב' אנא קיראו היטב את ההראות שלהלן:

sharing food intro price & extra drinks * ניתן להזמין מנות כשרות בתאום מראש for good memories

ניפוי שגיאות )Debug( מאת ישראל אברמוביץ

מבוא למחשב בשפת Matlab

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0

תצוגת LCD חיבור התצוגה לבקר. (Liquid Crystal Display) המערכת.

מספר מילה. you very hungry am דוגמאות: decision trees ההודעה.

Name Page 1 of 5. דף ז. This week s bechina begins with the fifth wide line at the top of

FILED: NEW YORK COUNTY CLERK 07/16/2014 INDEX NO /2014 NYSCEF DOC. NO. 102 RECEIVED NYSCEF: 07/16/2014 EXHIBIT 5

דיאלוג מומחז בין מרטין בובר וקרל רוג'רס

Forgive us, pardon us, grant us atonement Parashat Shelach Lecha June 9, 2018 Rabbi Carl M. Perkins Temple Aliyah, Needham

DNS פרק 4 ג' ברק גונן מבוסס על ספר הלימוד "רשתות מחשבים" עומר רוזנבוים 1

מספר השאלון: הצעת תשובות לשאלות בחינת הבגרות אנגלית (MODULE C) מילון אנגלי-אנגלי-עברי או מילון אנגלי-עברי-עברי-אנגלי قاموس إنجليزي - إنجليزي - عربي

בעיית שיבוץ משימות.J כל משימה j J מאופיינת על הקלט: קבוצת משימות.t(j) s(j) וזמן סיום ידי זמן התחלה J J של משימות לא חופפות בזמן, הפלט: תת-קבוצה שהיא מ

תכנית סטארט עמותת יכולות, בשיתוף משרד החינוך א נ ג ל י ת שאלון ב' Corresponds with Module B גרסה ב' הוראות לנבחן

NATIONAL COUNCIL OF YOUNG ISRAEL. Shavuot Nation JEWISH EDITION. Compiled by Gabi Weinberg Teen Program Director

Adam: Meet Haman. A Sermon Delivered by Rabbi Haskel Lookstein on Shabbat Bereishit October 25, 2008

קריאת גרפים. לצפייה בפתרון בווידאו לתרגילים שבחוברת, כנסו ל "קריאת גרפים" בשאלון 801 שבאתר 116

שאלה ) 1 מבחינה של פרופ' נוגה אלון ( G V עם משקלים על הקשתות, ונתון עץ פורש מינימלי של G. נניח

בהצלחה! (MODULE C) Hoffman, Y. (2014). The Universal English-Hebrew, Hebrew-English Dictionary

A lot of the time when people think about Shabbat they focus very heavily on the things they CAN T do.

חטיבת הביניים "יונתן" עבודה לקיץ באנגלית לבוגרי כיתה עבודה נעימה!

חומר עזר בשימוש: הכל )ספרים ומחברות( קרא המלצות לפני הבחינה ובדיקות אחרונות לפני מסירה )עמודים 8-11( 2 שאלות )בחירה מ - 4( סה"כ 50 נקודות

ב. משרד החינוך בגרות לנבחנים אקסטרניים א נ ג ל י ת (MODULE B) הוראות מיוחדות: )2( בתום הבחינה החזר את השאלון למשגיח. בהצלחה!

Scribal Impact on Textual Transmission. by Israel M. Sandman, UCL. Parma, Biblioteca Palatina 2373, 16b

Theories of Justice

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0

מבוא למחשב בשפת פייתון

HEBREW THROUGH MOVEMENT

שאלון ו' הוראות לנבחן

שאלון ד' הוראות לנבחן

SEEDS OF GREATNESS MINING THROUGH THE STORY OF MOSHE S CHILDHOOD

1. מספרים מרוכבים צורות אלגברית ווקטורית של מספרים מרוכבים. הוא זוג סדור. הגדרה 1.1. מספר מרוכב z של מספרים ממשיים. ו- y

ב "ה. ABC s of Judaism. Fundamentals of Jewish Thought and Practice. June 2007 Tammuz 5767 Jewish Educational Institute Chabad Brisbane

יהי ה' אלקינו עמנו - תשכ"ד - חלק ג. Yehi Hashem Elokeinu Imanu Section Three -

SPSS 10.0 FOR WINDOWS

Structural Vs. Nominal Typing

Information The marks for questions are shown in brackets. The maximum mark for this paper is 50. You must not use a dictionary.

Apple, keys, pen, pencils, pencilbox,(toy)elephant,( toy) boy, (toy) girl, ball

יחידה א. קוראים לי is my name אני I. Before you start

And now Israel, what does Hashem your G-d ask from you but to revere Hashem your G-d

is the Image of Elohim (and not-adam is the Image of elohim acherim) The Zohar on Anger and the Image of God

Global Day of Jewish Learning

Genetic Tests for Partners of CF patients

טו: and ends on the bottom of

Transcription:

מבני נתונים תרגיל 4 פתרון גלעד אשרוב 2 ביוני 2014 תרגיל 1. לסעיפים הבאים, כתבו אלגוריתמים הכי יעילים (אסימפטוטית) למשימה, והסבירו מדוע לא ניתן לבנות אלגוריתם יעיל יותר: 1. כתבו אלגוריתם המקבל כקלט עץ בינארי, ומחזיר האם הוא עץ חיפוש. 2. כתבו אלגוריתם המקבל כקלט עץ בינארי, ומחזיר האם הוא עץ.AV L 1. ניזכר שעץ חיפוש הוא עץ המכיל שני תתי עצים שהם בעצמם עצי חיפוש, וכל המפתחות בתת העץ השמאלי קטנים מערכו של המפתח בשורש, שקטן מכל המפתחות בתת העץ השמאלי. בכדי לדעת האם העץ הוא עץ חיפוש נשתמש בפונקציה רקורסיבית המקבלת עץ ומחזירה שלושה ערכים האם העץ הוא עץ חיפוש, מהו ערך המפתח הגדול ביותר בעץ, ומהו ערך המפתח הקטן ביותר. האלגוריתם: (א) אם העץ הוא עלה בודד בעל הערך x, החזר (x.(yes,,x (ב) אחרת נניח העץ הוא ) right T), left,,r T כאשר T left הוא תת העץ השמאלי, r הוא ערכו של השורש, ו- T right הוא תת העץ הימני. בצע:.(b left, min left, max left ) וקבל חזרה,T left הפעל רקורסיבית את האלגוריתם על.i (אם T left ריק, נאמר שקיבלנו חזרה r) (yes, r,.(.(b right, min right, max right ) וקבל חזרה,T right הפעל רקורסיבית את האלגוריתם על.ii (אם T right ריק, נאמר שקיבלנו חזרה r) (yes, r,.(.iii אם,b left = b right = true וגם,max left r min right החזר: ) right.(true, min left, max אחרת, החזר 0).(false, 0, קל לראות שעלות האלגוריתם הוא.O(n) 2. ראשית, נבדוק שהעץ הוא באמת עץ חיפוש, ולשם כך נפעיל את האלגוריתם מהסעיף הקודם. כעת, נרצה שהוא יהיה גם עץ.AV L לשם כך, נכתוב פונקציה רקורסיבית המקבלת עץ ומחזירה שני ערכים האם העץ הוא,AV L ואת גובה העץ. נקבל אם כן: (א) אם העץ הוא עץ ריק, החזר (1.(yes, (ב) אחרת, נניח העץ הוא ) right T), left,,r T כאשר T left הוא תת העץ השמאלי, ו T right הוא תת העץ הימני. אזי: 1

b). left, h left ) הפעל רקורסיבית את האלגוריתם על תת העץ השמאלי. קבל חזרה i. b). right, h right ) הפעל רקורסיבית את האלגוריתם על תת העץ השמאלי. קבל חזרה.ii.(true, max{h left, h right } + 1) אזי החזר, h left h right וגם 1,b left = b right = true אם.iii אחרת, החזר (0.(false, תרגיל 2. נגדיר כגלגול את הפעולה שנעשית באיזון מחדש של עצי.AV L ראינו 4 סוגי גלגולים: פשוט וכפול, ימינה ושמאלה. א. הוכח/י שבהינתן 2 עצי חיפוש בינאריים T 1 ו- T 2 בעלי אותם n ערכים ניתן להגיע מ- T 1 ל- T 2 ע"י ביצוע סדרה של גלגולים פשוטים. רמז: הראה/י קודם איך לטפל בשורש ואח"כ בתת העצים. ב. הראה/י שמספר הגלגולים הדרוש הוא ) 2.O(n נתבונן בשורש של- T. 2 נניח שהשורש שלו הוא r. נחפש את השורש r בעץ T, 1 ונבצע סידרה של גלגולים פשוטים בכדי להעלות אותו לשורש (קל..). כעת, מכיוון ששניהם העצים הם עצי חיפוש עם אותם הערכים - גודל תת העץ הימני של T 1 מכיל את כל המפתחות שקטנים מ- r, בדיוק כמו ב- T. 2 בצורה דומה - עבור תת העץ הימני של T 1 ותת העץ הימני של T. 2 נריץ את האלגוריתם רקורסיבית על שני תתי העצים (( 2,(L(T 1,( L(T ובנוסף (( 2.(R(T 1,( R(T הנ"ל בעצם יחזיר לנו את הגלגולים שצריך לעשות בכדי להעביר את ) 1 L(T ל-(,L(T 2 וכן את הגלגולים שצריך לעשות בכדי להעביר את ) 1 R(T ל-(.R(T 2 בסופו של דבר, נחזיר את סדרת הגלגולים הנדרשים כדי להעביר את השורש של T 1 להיות אותו השורש כמו + T 2 שתי סדרות הגלגולים המתאימים לתתי העצים. האלגוריתם הנ"ל מראה שאפשר לעבור מ- T 1 ל- T, 2 ואפילו מראה כיצד ניתן למצוא את סידרת הגלגולים המתאימה. לגבי הסעיף השני, במקרה הגרוע ביותר העצים ממש לא מאוזנים ונצטרך לבצע סדרה של n גלגולים בכדי להעלות את השורש. מקרה זה מתקבל כאשר השורש הוא האיבר הגדול ביותר / הקטן ביותר. אם כך, הנוסחא הרקורסיבית תהיה: T (n) = T (1) + T (n 1) + n ופתרון הנוסחא הנ"ל הוא ) 2.O(n תרגיל 3. נניח שבעץ AV L שומרים לכל צומת בנוסף לשדות הרגילים, את הדרגה של הצומת (מספר הקודקודים בתת העץ המושרש באותו הצומת). הראו כיצד ניתן לתחזק את השדות הנ"ל עם הכנסות והוצאות ב- L.AV כלומר, הראו כיצד ניתן לשנות את השדות הנ"ל עם כל הכנסה והוצאה. בזמן הכנסה נגדיל את n(v) ב- 1 לאורך המסלול מהשורש לעלה שהוכנס. בזמן הסרה - נוריד באחד. בזמן גלגול - נעדכן את השדה כנדרש. למשל, בגלגול :LL 2

תרגיל 4. תזכורת: האינטרוול [y I =,x] (עבור x) y היא קבוצת כל המספרים שבין x ל- y, כלומר - {z x z y}. לערך x אנחנו קוראים I.low ולערך y נקרא.I.high נניח ואנו רוצים לבנות מבנה נתונים המאחסן אינטרוולים. בשאילתא הבאה: בנוסף לפעולות הכנסה והוצאה, נרצה לתמוך חיפוש אינטרוול [b,a]: האם קיים במבנה אינטרוול [y,x] שמכיל את [b,a]. כלומר, אינטרוול [y,x] המקיים:.x a b y אם כן - החזר אותו. בכדי לעשות זאת, נשמור את הנתונים בעץ AV L לפי מפתח -.low בנוסף, לכל קודקוד x בעץ, נשמור משתנה נוסף M שיישמור את המקסימום של ערכי ה- high של כל תת העץ המושרש בקודקוד x, כלומר, המשתנה ישמור את: x.m = max {x.interval.high, x.left.m, x.right.m}. הראו כיצד לממש את הפעולה "חיפוש אינטרוול [b,a]", וכיצד השדה M עוזר לנו בחיפוש זה. חיפוש ייעשה בצורה הבאה: Algorithm 1 Interval Search(i) x root. while x NULL and (i.low > x.interval.high or x.interval.low > i.high) do if x.left NULL and i.low left.x.m then x =x.left else x = x.right end if end while תרגיל 5. עץ חיפוש בינארי ייקרא "עץ אדום שחור" אם הוא עץ שלם 1 ומקיים את התכונות הבאות: 1. כל צומת צבוע ב"אדום" או "שחור". 2. כל עלה צבוע ב"שחור". 1 תזכורת: עץ שלם הוא עץ שבו כל צומת הוא או עלה, או שיש לו שני בנים. 3

3. אם צומת הוא אדום, אז שני בניו שחורים. 4. כל המסלולים מכל קודקוד לכל העלים שהם צאצאיו, מכילים את אותו המספר של צמתים שחורים. ענה על הסעיפים הבאים: א. מה ניתן להגיד על צבעם של הקדקדים במסלול מהשורש לעלה כלשהו? (מהו יחס כמות הצמתים השחורים לעומת האדומים?) הבהרה: עליכם לחשוב על מקרה כללי ולא להתמקד בהכרח בדוגמא שלפניכם. ב. נגדיר את "הגובה השחור" כדלהלן: הגדרה 1. (גובה שחור) לכל צומת x נגדיר "גובה השחור" height) (black של x, כמספר הקודקודים השחורים בכל מסלול מצומת x ועד לעלה (לא כולל את הצומת x עצמו). נסמן מספר זה ב -.bh(x) בדוגמא שלפניכם, עבור הקודקוד 8, גובהו השחור הוא: = 2.bh(8) בצורה דומה, ציין לכל קודקוד את הגובה השחור שלו. ג. נניח שבעץ h רמות, ויהי x השורש. הסבר מדוע: 2/h.bh(x) ד. יהי x קודקוד פנימי, ויהיו,y z שני בניו. הוכח כי: + 1 bh(y) bh(x) (ובאותו אופן גם:.(bh(x) bh(z) + 1 ה. הוכח את הטענה הבאה: לכל קודקוד x בעץ אדום שחור, תת העץ המושרש ב - x (כלומר, תת העץ ש- x הוא השורש שלו) מכיל לפחות 1 bh(x) 2 צמתים פנימיים. (ההוכחה היא באינדוקציה על גובהו של x, והשתמשו בסעיף הקודם). ו. השתמש בסעיפים ג' ו-ה' בכדי להראות שגובהו של עץ אדום שחור בעל n צמתים פנימיים הוא לכל היותר.2 log(n + 1) א. נשים לב שאם צומת הוא אדום, אזי שני בניו שחורים. כמו כן, מספר הצמתים השחורים בכל המסלולים בין השורש לכל אחד מהעלים הוא שווה. לכן, במסלול הכי קצר מהשורש לעלה, כל הצמתים יהיו שחורים. במסלול הכי ארוך - יהיו מקסימום פי שניים צמתים - אותו מספר של צמתים שחורים כמו במסלול ההכי קצר, ומקסימום בין כל שני שחורים יימצא קודקוד אחד אדום (שימו לב שאי אפשר שיהיו שני קודקודים אדומים ברצף). ב. בדוגמא הנתונה לנו, נקבל כי:.(NIL) קודקודים אלו הם כל העלים :bh(x) = 0 1 = :bh(x) הקודקודים 1, 6, 11, 15, 22, 25, 27 (נשים לב שהגדרת bh(x) אומרת כל הקודקודים השחורים עד לעלה מלבד הקודקוד x עצמו), ולכן גם הצמתים 25 15, 11, 1, הם בעלי = 1 bh(x) אף על פי שהם שחורים בעצמם..8, 17, 13 :bh(x) = 2 ג. דומה ל-א': נניח שהגובה הוא h. לפי כלל (3) (לכל אדום - שני בניו שחורים) נקבל שבכל מסלול פשוט מהשורש לעלה יש לכל הפחות 2/h צמתים שחורים, ולכן 2/h bh(x) (כאשר x מסמן את השורש). 4

ד. נתבונן על x ו- y. נשים לב כי: אם y אדום, אזי bh(y).bh(x) = זאת מכיוון ש( bh(x הוא מספר השחורים בעץ המושרש ב - x, לא כולל הצומת x עצמו. אם y שחור, אזי + 1 bh(y).bh(x) = (שכן, y שחור, ואינו נספר ב,bh(y) אבל כן נספר ב - (bh(x) לכן, בסה"כ, לא משנה מהו צבעו של y, בכל אופן מתקיים כי: + 1 bh(y).bh(x) ה. הוכחה: ההוכחה היא באינדוקציה על גובהו של x. אם x הוא עלה, אזי = 0,bh(x) ותת העץ שלו אינו מכיל צמתים פנימיים. הטענה אומרת שתת העץ מכיל = 0 1 2 0 צמתים פנימיים, ולכן הטענה מתקיימת. צעד האינדוקציה: נניח ש x הוא בעל גובה חיובי. נתבונן בתת עץ ששורשו ב x. מכיוון ש x אינו עלה, יש לו שני בנים, נניח.y, z כפי שראינו, + 1 bh(y) bh(x) וגם + 1 bh(z).bh(x) לסיכום, נוכל לומר כי 1 bh(x).bh(y) = bh(z) על כל פנים, גם y וגם z, שניהם בעלי רמה נמוכה יותר מהרמה של x, ולכן ניתן להפעיל עליהם את הנחת האינדוקציה. לפי ההנחה, 1 bh(y). T (y) 2 לפי המסקנה שראינו, נקבל כי bh(x) 1 1, T (x) 2 ובאופן דומה bh(x) 1 1. T (z) 2 נקבל אם כן: ( ) T (x) = T (y) + T (x) + 1 2 2 bh(x) 1 1 + 1 = 2 bh(x) 2 + 1 = 2 bh(x) 1 וזה בדיוק מה שהיינו צריכים להוכיח. ו. יהי x השורש, ויהי h הגובה. לפי מה שראינו, h/2 bh(x) וגם 1 bh(x). T (x) 2 נסמן. T (x) = n נקבל אם כן: n 2 bh(x) 1 n + 1 2 bh(x) 2 h/2 h 2 log(n + 1) h 2 log(n + 1) 5