AVL Tree ,B-tree ,Heap Tree

Download Report

Transcript AVL Tree ,B-tree ,Heap Tree

AVL Tree ,B-tree
วิวฒ
ั น์ ชินนาทศิรกิ ุล
AVL Tree (Adelson-Velskii and Landis Tree)

นิยามของ AVL Tree
1. เป็น binary search tree
2. เป็ น Balanced tree

Balanced tree หมายถึง Tree ทีม่ คี ุณสมบัตดิ งั นี้คอื ทุกโหนดใน tree
ต้องมีคา่ น้ าหนักประจาโหนด เป็ น -1 , 0 หรือ 1 เท่านัน้
น้ าหนักของโหนด R = ความสูงของ TL - ความสูงของ TR
ตัวอย่างการตรวจสอบ AVL Tree
โหนดทีบ่ รรจุขอ้ มูล 12 มีความสูงเท่ากับ 1-3 = -2
โหนดทีบ่ รรจุขอ้ มูล 7 มีความสูงเท่ากับ 0-2 = -2
โหนดทีบ่ รรจุขอ้ มูล 20 มีความสูงเท่ากับ 2-1 = 1
12
7
20
15
5
43
คาถาม Tree ทีก่ าหนดด้านล่างเป็น AVL Tree หรือไม่
25
11
3
1
14
24
18
8
34
86
13
รูป A
3
43
32
56
41
29
รูป B
74
72
81
สาเหตุที่ทาให้ Tree ไม่สมดุลย์ (Unbalanced tree)
1. Left of Left
ั ่ ายของโหนดลูกทางซ้าย
เกิดเมือ่ มีการแทรกโหนดเข้าไปด้าน sub-tree ฝงซ้
เกิด Imbalance
11
5
3
11
24
5
7
เดิมต้นไม้สมดุลย์
3
2
24
7
ต้นไม้ไม่สมดุลย์
2. Right of Right
ั่
เกิดเมือ่ มีการแทรกโหนดเข้าไปด้าน sub-tree ฝงขวาของโหนดลู
กทางขวา
เกิด Imbalance
11
5
11
24
15
เดิมต้นไม้สมดุลย์
5
45
24
15
ต้นไม้ไม่สมดุลย์
45
82
3.Right of Left
ั่
เกิดเมือ่ มีการแทรกโหนดเข้าไปด้าน sub-tree ฝงขวาของโหนดลู
กทางซ้าย
เกิด Imbalance
11
11
5
3
5
24
10
24
3
10
6
4. Left of Right
ั่
เกิดเมือ่ มีการแทรกโหนดเข้าไปด้าน sub-tree ฝงขวาของโหนดลู
กทางซ้าย
เกิด Imbalance
11
5
11
5
24
15
45
24
15
45
18
การทา Balancing Tree
1. Single rotation
การหมุน 1 ครัง้ ใช้กรณีเกิด Left of Left และ Right of Right
2. Double rotation
การหมุน 2 ครัง้ ใช้กรณีเกิด Right of Left และ Left of Right
1. Single rotation : rotate right
C
B
B
A
A
C
ตัวอย่าง
24
11
11
5
24
5
28
28
10
2
56
12
49
30
49
10
2
12
30
56
11
5
5
24
3
3
7
2
2
11
7
24
2. Single rotation : rotate left
A
B
B
A
C
C
ตัวอย่าง
4
12
12
4
20
20
13
5
2
13
20
7
26
5
26
2
38
7
20
38
11
5
24
24
15
11
5
45
82
45
15
82
3. Double rotation : left of right
A
B
C
B
A
C
ตัวอย่าง
11
5
15
24
15
11
45
18
5
24
18
45
4. Double rotation : right of left
C
A
B
A
B
C
ตัวอย่าง
11
5
10
24
3
10
6
5
3
11
6
24
ตัวอย่าง
จงสร้าง AVL Tree จากข้อมูลทีน่ าเข้ามาตามลาดับดังต่อไปนี้
23, 54, 34, 2, 14, 7, 26, 16, 87, 21, 9
โครงสร้างข้อมูลแบบ B-Tree
เป็ นการจัดให้โครงสร้างต้นไม้อยูใ่ นสภาพสมดุล วิธกี ารหนึ่งทีเ่ รียกว่า
Balanced Order n Multiway Search Tree หรือ B-Tree
(ตัง้ ชื่อตามผูพ้ ฒ
ั นาขึน้ คือ Buyer)
คุณสมบัติของ B-Tree order m มีดงั นี้
1. โหนดราก ถ้ามีลกู หลาน จะต้องมีอย่างน้อย 2 โหนด
2. โหนดอื่นๆทีไ่ ม่ใช่โหนดราก หรือโหนดใบ จะมีลกู ไม่น้อยกว่า m/2
3. โหนดใบอยูใ่ นระดับเดียวกัน
4. B-Tree order m อาจเรียก (m-1)-m tree เช่น B-Tree order 3
อาจเรียกว่า 2-3 Tree
ตัวอย่าง B-tree order 3 หรือ 2-3 Tree
20 35
7 15
3
5
10
40
30
17
25
32
37
42 43
ตัวอย่าง
จงสร้าง 2-3 Tree จากข้อมูลต่อไปนี้
5 6 7 2 8 1 3 0 9 4
แบบฝึ กหัด
1. จงสร้าง AVL Tree จากข้อมูลทีก่ าหนดให้ต่อไปนี้
5, 23, 57, 8, 12, 45, 21, 36, 28, 4, 22, 13, 27
2. กาหนด 2-3 Tree ดังภาพ
15
6
5
19
7
8
17
25
20 21
29 30
จงนาข้อมูลต่อไปนี้ 9 , 10 , 22 , 40 , 12 ,45 , 50 แทรกลง 2-3 Tree