slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
עצי AVL PowerPoint Presentation
Download Presentation
עצי AVL

Loading in 2 Seconds...

play fullscreen
1 / 47

עצי AVL - PowerPoint PPT Presentation


  • 193 Views
  • Uploaded on

עצי AVL. Prepared by: Hana Zimmerman-Karl Hanazimmermankarl@gmail.com. המטרה. מבנה נתונים שיתמוך בפעולות בסיסיות על קבוצות דינמיות: הוספה, חיפוש, מינימום/מקסימום, ביטול סריקה, מיון, בצורה יעילה ביותר. האם עצי חיפוש בינריים טובים מספיק ?. ביצועים במקרה הגרוע : הוספה – חיפוש –

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'עצי AVL' - sana


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

עצי AVL

Prepared by:

Hana Zimmerman-Karl

Hanazimmermankarl@gmail.com

slide2
המטרה

מבנה נתונים שיתמוך בפעולות בסיסיות על קבוצות דינמיות:

  • הוספה,
  • חיפוש,
  • מינימום/מקסימום,
  • ביטול
  • סריקה,
  • מיון,

בצורה יעילה ביותר.

slide3
האם עצי חיפוש בינריים טובים מספיק ?

ביצועים במקרה הגרוע :

  • הוספה –
  • חיפוש –
  • מינימום/מקסימום –
  • ביטול –
  • סריקה –
  • מיון –

גובה העץ – O(n)

גובה העץ – O(n)

גובה העץ – O(n)

בגלל חיפוש העוקב -גובה העץ – O(n)

יש לבקר כל איבר – O(n)

הוספת n איברים - O(n2)

slide4
הבעיה :
  • גובהו של עץ החיפוש הבינרי במקרה הגרוע – O(n)
slide5
הפתרון
  • תחזוקה של העץ, כך שישאר נמוך גם לאחר שנבצע פעולות הוספה וביטול.
  • גובהו יהיה :
  • משפחה כזו של עצים : עצי AVL(Adel’son, Vel’skii, Landis : AVL – חוקרים רוסים שהיו הראשונים שחקרו את משפחת העצים הזו)
slide6
רשימת הנושאים שנעבור :
  • תכונת עץ AVL
  • רוטציות (ימנית/שמאלית)
  • מקרים שונים בהוספה
  • מקרים שונים בביטול

הגדרות

רוטציות

הוספה

ביטול

slide7
גובה של עץ בינרי T
  • מספר הצמתים במסלול הארוך ביותר מהשורש אל איזשהו עלה ב- T.
  • גובה של עץ ריק מוגדר להיות 0 .
  • (גובהו של עץ המכיל צומת יחיד (עלה) הוא 1.)
slide9
גורם איזון של צומת בעץ בינרי - הגדרה

גובה תת העץ השמאלישל הצומתפחותגובה תת העץ הימנישל הצומת

-1

1

0

3

4

-2

2

1

3

0

3

0

0

0

0

0

0

0

1

1

2

2

-1

1

0

1

0

0

0

0

0

0

0

1

0

1

0

1

1

0

0

0

0

0

0

0

0

0

slide10
גורם האיזון – הערה חשובה!!!

גורם האיזון של צומת תלוי רק בגובהי שני תתי העצים שתחתיו, ואינו תלוי כלל בגורמי איזון של צמתים אחרים !!!!

slide13
עץ AVL
  • עץ חיפוש בינרי, שבו גורם האיזון של כל צומת הוא 0, 1, או 1-.
  • (לכל צומת בעץ, הגבהים של שני תתי העצים שלו, אינם נבדלים ביותר מ- 1)
  • עץ כזה יקרא – עץ מאוזן.
slide14
הוספת איבר עם מפתח K שלב 1
  • הכנסת K לעץ, כעלה, בעץ חיפוש בינרי.

תוך כדיהוספה, נשמור מצביע, לאב הקדום,

הנמוך ביותר של K, שגורם האיזון שלו לפני

ההכנסה, היה 1או 1-.

  • נסמן צומת זה ב- A.

(אם אין צומת כזה,

ברור, שגם לאחר הכנסת K, העץ יישאר מאוזן)

  • נסמן ב- B את הבן של A, בכיוון ההוספה של K.
a b 1
מציאת A ו- B - דוגמא 1

A

נוסיף את 38

1

100

B

A

1

87

237

B

54

0

94

180

275

10

0

68

91

98

108

199

245

301

3

22

0

62

75

K

38

a b 11

100

K

מציאת A ו- B תרגיל 1

450

נוסיף את 100

844

296

50

330

790

1000

38

190

303

472

73

231

a b 2

111

K

מציאת A ו- B - תרגיל 2

נוסיף את 111

77

57

140

20

69

188

101

10

37

64

76

90

121

167

199

0

15

30

44

130

80

100

158

174

190

200

a b 3

K

327

מציאת A ו- B - תרגיל 3

נוסיף את 327

158

88

281

55

101

300

190

21

66

99

141

174

222

297

328

8

28

169

182

201

223

285

299

325

341

slide19
הוספת איבר עם מפתח K שלב 2
  • בדיקה אם בעקבות הכנסת K העץ הפך להיות לא מאוזן.
  • העץ הפך להיות לא מאוזן אם גורם האיזון של אחד הצמתים הפך להיות 2 או 2-.
  • מספיק לבדוק את גורם האיזון של A!
slide20

34

93

124

178

K

24

בדיקה - האם העץ עדיין מאוזן (1)?

109

66

145

A

1

6

38

71

103

117

131

165

189

3

8

68

73

גורם האיזון של A הפך ל- 2. האיזון הופר.

slide21
בדיקה - האם העץ עדיין מאוזן (2)?

109

66

145

A

34

93

124

178

6

38

71

103

117

131

165

189

3

8

48

68

73

K

גורם האיזון של A הפך ל- 0. העץ מאוזן.

avl a 2

B

1

A

1

2

A

3T

2

1

1T

3T

K

K

הוספת איבר לעץ AVLגורם איזון של A הפך ל- 2 מקרה א'

0

A

1

2

B

0

1

3T

0

2T

1T

2T

Kמוכנס לתת-עץ שמאלי של A ולתת-עץ שמאלי של B

slide23

178

178

61

239

61

239

A

40

201

278

40

82

201

278

94

B

82

100

195

220

255

303

195

220

255

303

24

49

24

49

73

94

18

35

73

88

18

35

69

100

K

69

K

הוספה – מקרה 1 - דוגמא

B

A

88

slide24

הוספת איבר לעץ AVLגורם איזון של A הפך ל- 2 מקרה ב'

K

A

1

2

B

0

1-

3T

1T

2T

Kמוכנס לתת-עץ שמאלי של A ולתת-עץ ימני של B

slide26
מתי ואילו גלגולים נבצע
  • מ- A, נלך שני צעדים במסלול לעבר העלה העמוק ביותר בתת העץ ש- A הוא השורש שלו.
  • לפי שני הצעדים האלה מחשבים את סוג הגלגול: לצעד הראשון נותנים את האות הראשונה ולצעד השני נותנים את האות השניה.
  • לאחר הגלגול, יש לעדכן את גורמי האיזון של הצמתים שבין אביו של K, ל-A. או עד לשורש (אם אין A)
slide27

A

2

B

1-

4T

C

1-

0

1T

1

2T

3T

2T

3T

מקרה ב2

K

K

K

מקרה ב' – מבט מפורט

A

2

1

B

1-

0

4T

C

1T

2T

מקרה ב1

slide28

A

C

A

1

2

1-

C

B

A

0

B

1-

2

1-

4T

4T

C

B

1-

3T

3T

2T

1T

1T

0

4T

1T

2T

2T

3T

K

K

K

מקרה ב1 – גלגול LR - שתי רוטציות

רוטציה LL (ימנית) על A

רוטציה RR (שמאלית) על B

2

0

1-

0

1

1-

slide29

C

A

A

2

1

1-

C

B

A

0

B

1-

2

1-

4T

4T

C

B

1-

3T

1T

0

3T

1T

2T

4T

1T

2T

2T

3T

K

K

K

מקרה ב2 – גלגול LR שתי רוטציות

רוטציה LL (ימנית)על A

רוטציה RR שמאלית על B

2

-1

1-

0

0

1

slide30

178

178

61

239

61

239

A

40

201

278

40

201

278

94

94

195

220

255

303

24

49

195

220

255

303

49

24

82

100

100

88

B

18

35

73

88

88

18

35

82

90

K

90

73

K

הוספה – מקרה ב2 - דוגמא

רוטציה RR (שמאלית) על B

A

B

slide31

178

178

61

239

61

239

A

40

88

201

278

40

201

278

94

A

195

220

255

303

24

49

82

195

220

255

303

24

49

100

94

88

73

18

35

18

35

100

90

90

K

K

הוספה – מקרה ב2 – דוגמא - המשך

רוטציה LL (ימנית) על A

82

73

avl rr
הוספת איבר לעץ AVL מקרה ג'נדרש גלגול RR

1

A

0

B

3T

2T

1T

Kמוכנסלתת-עץ ימני של A ולתת-עץ ימני של B

K

avl rl
הוספת איבר לעץ AVL מקרה ד'נדרש גלגול RL

1-

A

0

B

3T

2T

1T

Kמוכנס לתת-עץ ימני של A ולתת-עץ שמאלי של B

K

avl 3
ביטול איבר מעץ AVL- 3 מקרים :

מקרה א'

  • גורם האיזון של האבא היה 0 לפני הביטול,ובעיקבות הביטול הוא משתנה ל- 1 או 1-.
  • גובה תת העץ שהאבא הוא שורשו – אינו משתנה ולכן אין השפעה על שאר העץ.
slide35

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

ביטול איבר מעץ AVL – מקרה א'

13

9

17

5

11

15

19

1

2

7

10

12

14

16

18

20

K

1

3

6

8

גורם האיזון של האבא הופך מ- 0 ל- 1

slide36

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

ביטול איבר מעץ AVL – מקרה א

13

9

17

5

11

15

19

-1

2

7

10

12

14

16

18

20

K

1

3

6

8

גורם האיזון של האבא הופך מ- 0 ל- 1-

avl 31
ביטול איבר מעץ AVL- 3 מקרים :

מקרה ב'

  • גורם האיזון של האבא היה 1 או 1- לפני הביטול,ובעיקבות הביטול הוא משתנה ל- 0.
  • גובה תת העץ שהאבא הוא שורשו – קטן ב- 1 ולכן, יש השפעה על הסבא. יש לעדכן את גורם האיזון של הסבא, ולהמשיך לעדכן את העץ, לפי השינוי בגורם האיזון של הסבא.
slide38
ביטול איבר מעץ AVL – מקרה ב'

13

1

9

1-

0

0

17

0

5

1

11

1-

15

0

0

19

-1

2

0

7

0

0

10

1

12

0

14

16

0

0

18

20

0

K

0

3

0

גורם האיזון של האבא הופך מ- 1- ל- 0.

עולים בעץ ומשנים את גורמי האיזון של האבות, בהתאם למה שצריך

slide39

0

0

0

1

1-

1

1

-1

0

0

1

1-

0

1

0

0

0

0

0

ביטול איבר מעץ AVL – מקרה ב'

13

9

1

17

5

11

15

0

19

2

7

10

12

14

16

18

0

20

3

K

גורם האיזון של האבא הופך מ- 1- ל- 0.

עולים בעץ ומשנים את גורמי האיזון של האבות, בהתאם למה שצריך

avl 32
ביטול איבר מעץ AVL- 3 מקרים :

מקרה ג'

  • גורם האיזון של האבא היה 1 או 1- לפני הביטול,ובעיקבות הביטול הוא משתנה ל- 2 או 2-.
  • תת העץ שהאבא הוא שורשו – אינו מאוזן, ויש לאזנו ע"י גלגול. לאחר הגלגול, גובהו של תת העץ יכול להפוך לנמוך ב- 1 (או לא להשתנות כלל) ולכן יתכן וצריך לעדכן את גורם האיזון של הסבא ולפעול בהתאם.
slide41
ביטול איבר מעץ AVL – מקרה ג'

1

1

2

1

0

0

0

0

K

0

0

0

0

0

0

0

0

0

גורם האיזון של האבא הופך מ- 1 ל- 2.

slide42

גלגול LL סביב צומת זה

1

1

1

2

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

ביטול איבר מעץ AVL – מקרה ג' - המשך

גורם האיזון של "האח" של הצומת המבוטל הוא 0

1-

0

2

1

0

0

0

slide43
ביטול איבר מעץ AVL – מקרה ג'

1

1

2

1

0

0

0

0

K

0

0

0

0

0

0

0

0

גורם האיזון של האבא הופך מ- 1 ל- 2.

slide44

1

1

1

0

0

0

0

0

0

0

0

0

0

0

ביטול איבר מעץ AVL – מקרה ג' - המשך

גורם האיזון של "האח" של הצומת המבוטל הוא 1

2

1

0

גלגול LL סביב צומת זה

1

2

2

0

0

0

1

1

0

0

0

0

0

0

יש לעדכן את גורם האיזון של האבא, ולבדוק אם יש צורך באיזון נוסף!

0

0

0

0

slide45

1

1

1-

0

0

0

0

0

0

0

0

0

0

0

ביטול איבר מעץ AVL – מקרה ג' - המשך

גורם האיזון של "האח" של הצומת המבוטל הוא 1-

נדרש גלגול LR

2

1

0

גלגול LL סביב צומת זה

2

1

1

0

2

0

0

1-

0

גלגול RR סביב צומת זה

0

0

0

0

0

יש לעדכן את גורם האיזון של האבא, ולבדוק אם יש צורך באיזון נוסף!

0

0

0

0

slide46

1

2

0

0

0

0

0

0

0

0

0

0

0

0

0

ביטול איבר מעץ AVL – מקרה ג' - המשך

שוב גורם האיזון של "האח" הוא 1

גלגול LL סביב צומת זה

0

2

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

הגענו עד השורש – ולכן נסיים

slide47
ביצועים של עצי AVL

ביצועים במקרה הגרוע :

  • הוספה –
  • חיפוש –
  • מינימום/מקסימום –
  • ביטול –
  • סריקה –
  • מיון –

גובה העץ – O(lgn)

גובה העץ – O(lgn)

גובה העץ – O(lgn)

גובה העץ – O(lgn)

יש לבקר כל איבר – O(n)

הוספת n איברים - O(nlgn)