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
5
12
7 20
15 43
โหนดที่บรรจุข้อมูล 12 มีความสูงเท่ากับ 1-3 =
โหนดที่บรรจุข้อมูล 7 มีความสูงเท่ากับ 0-2 = -2
โหนดที่บรรจุข้อมูล 20 มีความสูงเท่ากับ 2-1 = 1
คำาถาม Tree ที่กำาหนดด้านล่างเป็น AVL
Tree หรือไม่
1
11
3 24
18 34
13 86
8
25
14 43
32 56
29 743
81
41
72
รูป A รูป B
สาเหตุที่ทำาให้ Tree ไม่สมดุลย์
(Unbalanced tree)1. Left of Left
เกิดเมื่อมีการแทรกโหนดเข้าไปด้าน sub-tree ฝั่ง
ซ้ายของโหนดลูกทางซ้าย
3
11
5 24
7
เดิมต้นไม้สมดุลย์
3
11
5 24
7
2
เกิด Imbalance
ต้นไม้ไม่สมดุลย์
2. Right of Right
เกิดเมื่อมีการแทรกโหนดเข้าไปด้าน sub-tree ฝั่ง
ขวาของโหนดลูกทางขวา
15
11
5 24
45 15
11
5 24
45
82
เกิด Imbalance
เดิมต้นไม้สมดุลย์ ต้นไม้ไม่สมดุลย์
3.Right of Left
เมื่อมีการแทรกโหนดเข้าไปด้าน sub-tree ฝั่งขวาของโหนดลูกท
3
11
5 24
10
3
11
5 24
10
6
เกิด Imbalance
4. Left of Right
มื่อมีการแทรกโหนดเข้าไปด้าน sub-tree ฝั่งขวาของโหนดลูกทา
15
11
5 24
45 15
11
5 24
45
18
เกิด Imbalance
การทำา 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
B
A
C
B
A C
ตัวอย่าง
11
5
24 11
5 24
10
2 12
28
56
49
30
10
2 12
28
56
49
30
3
11
5 24
7
2
2
5
3 11
7 24
2. Single rotation :
rotate left
B
A
C
B
A C
ตัวอย่าง
12
20
4
12
204
5
2 7
13
20
26
38
5
2 7
13
38
26
20
15
11
5 24
45
82
5
24
11 45
8215
3. Double rotation : left of
right
B
A
C
B
A C
ตัวอย่าง
15
11
5 24
45
18
18
15
11 24
455
4. Double rotation :
right of left
C
A
B
B
A C
ตัวอย่าง
3
11
5 24
10
6
3
10
5 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 มีดังนี้
ดราก ถ้ามีลูกหลาน จะต้องมีอย่างน้อย 2 โหนด
ดอื่นๆที่ไม่ใช่โหนดราก หรือโหนดใบ จะมีลูกไม่น้อยกว่า m/2
ดใบอยู่ในระดับเดียวกัน
ree 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 42 43
30 40
10 17 25 32 37
ตัวอย่าง
จงสร้าง 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
19 256
5 7 8 17 20 21 29 30
ข้อมูลต่อไปนี้ 9 , 10 , 22 , 40 , 12 ,45 , 50 แทรกลง 2-3

avl tree ,b-tree