ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
ได้พิมพ์โดยPundit Kraiputra ได้เปลี่ยน 10 ปีที่แล้ว
1
สาขาวิชาคอมพิวเตอร์และเทคโนโลยี อ.เลาขวัญ งามประสิทธิ์
Binary Search Tree สาขาวิชาคอมพิวเตอร์และเทคโนโลยี อ.เลาขวัญ งามประสิทธิ์
2
นิยามของโครงสร้างข้อมูล Binary Search Tree
ทุกโหนดที่อยู่ทางด้าน sub-tree ด้านซ้ายจะต้องมีค่าน้อยกว่า root ทุกโหนดที่อยู่ทางด้าน sub-tree ด้านขวา จะต้องมีค่ามากกว่าหรือเท่ากับ root แต่ละ sub-tree จะต้องมีคุณสมบัติตามข้อ 1 และ 2
3
ตัวอย่าง binary search tree
5 12 5 9 (a) 7 20 32 15 43 5 24 2 8 (c) (b) (d)
4
ตัวอย่าง binary tree ที่ไม่จัดว่าเป็น binary search tree
2 12 1 4 8 7 20 18 (a) 15 43 24 32 5 (b) (c)
5
การดำเนินการของ binary search tree
Traversal ท่องไปใน binary search tree เหมือนกับการท่องใน binary tree คือ - Preorder - Inorder - Postorder Search ค้นหาโหนดที่ต้องการ Insert แทรกโหนด Delete ลบโหนด
6
Inorder Traversal Inorder-tree(x) If x != NULL
then Inorder-tree(left of x) print x Inorder-tree(right of x)
7
Preorder Traversal Preorder-tree(x) If x != NULL then print x
Preorder-tree(left of x) Preorder-tree(right of x)
8
Postorder Traversal Postorder-tree(x) If x != NULL
then Postorder-tree(left of x) Postorder-tree(right of x) print x
9
การลบโหนดออกจาก Tree กรณีที่โหนดนั้นเป็น leaf สามารถลบออกได้เลย
กรณีที่โหนดนั้นมี 1 child กรณีที่โหนดนั้นมี 2 children
10
การลบโหนดออกจาก Tree: กรณีที่โหนดนั้นมี 1 child
12 12 7 20 7 20 15 15 before after
11
การลบโหนดออกจาก Tree: กรณีที่โหนดนั้นมี 2 child
12 12 15 7 20 7 20 7 20 15 43 15 43 43 before after Replace the key of this node with the smallest key of right subtree.
12
แหล่งความรู้เพิ่มเติม
Animated Binary Search Tree 1 Animated Binary Search Tree 2
13
สาขาวิชาคอมพิวเตอร์และเทคโนโลยี อ.เลาขวัญ งามประสิทธิ์
AVL Tree สาขาวิชาคอมพิวเตอร์และเทคโนโลยี อ.เลาขวัญ งามประสิทธิ์
14
Balance Factor = |HL – HR| 1
นิยามของ AVL Tree Tree นั้นจะต้องเป็น binary search tree Tree นั้นจะต้องเป็น Balanced tree Balanced tree หมายถึง ทุกโหนดใน tree ต้องมีความสูงของ left sub-tree และ right sub-tree ต่างกันไม่เกิน 1 Balance Factor = |HL – HR| 1
15
ตัวอย่างการตรวจสอบ AVL Tree
Node5 HL = 0, HR = BF = |0 - 0| = 0 Node15 HL = 1, HR = BF = |1 - 0| = 1 Node43 HL = 0, HR = BF = |0 - 0| = 0 Node20 HL = 2, HR = BF = |2 - 1| = 1 Node7 HL = 0, HR = BF = |0 - 0| = 0 Node12 HL = 1, HR = BF = |1 - 3| = 2 2 12 1 7 20 1 15 43 เกิด Imbalance ที่โหนด 12 ดังนั้น tree นี้ไม่เป็น AVL Tree 5
16
พิจารณาว่า Tree ต่อไปนี้เป็น AVL Tree หรือไม่
1 1 11 3 24 18 34 13 86 เป็น AVL Tree
17
พิจารณาว่า Tree ต่อไปนี้เป็น AVL Tree หรือไม่
1 2 8 25 14 43 32 56 29 74 3 81 41 72 เกิด Imbalance ที่โหนด 14 และ 56 ดังนั้น ไม่เป็น AVL Tree
18
Unbalanced Tree Left of Left Right of Right Right of Left
Left of Right
19
Left of Left เกิดเมื่อมีการแทรกโหนดเข้าไปด้าน sub-tree ฝั่งซ้ายของโหนดลูกทางซ้าย เกิด Imbalance 11 11 5 24 5 24 3 7 3 7 2 2
20
Right of Right เกิดเมื่อมีการแทรกโหนดเข้าไปด้าน sub-tree ฝั่งขวาของโหนดลูกทางขวา เกิด Imbalance 11 11 5 24 5 24 15 45 15 45 82 82
21
Right of Left เกิดเมื่อมีการแทรกโหนดเข้าไปด้าน sub-tree ฝั่งขวาของโหนดลูกทางซ้าย เกิด Imbalance 11 11 5 24 5 24 3 10 3 10 6 6
22
Left of Right เกิดเมื่อมีการแทรกโหนดเข้าไปด้าน sub-tree ฝั่งขวาของโหนดลูกทางซ้าย เกิด Imbalance 11 11 5 24 5 24 15 45 15 45 18 18
23
การทำ Balancing Tree Single rotation Double rotation
การหมุน 1 ครั้ง ใช้กรณีเกิด Left of Left และ Right of Right Double rotation การหมุน 2 ครั้ง ใช้กรณีเกิด Right of Left และ Left of Right
24
Single rotation : rotate right
เกิด Imbalance C A A B B C
25
28 ตัวอย่าง 10 56 2 12 49 24 11 30 5 28 11 49 10 5 24 2 12 30 56
26
ตัวอย่าง Rotate Right 11 5 5 24 3 11 3 7 2 7 24 2
27
Single rotation : rotate left
C A B เกิด Imbalance A B C
28
13 ตัวอย่าง 5 20 2 7 26 4 12 38 20 13 12 26 5 4 20 2 7 20 38
29
ตัวอย่าง 11 5 24 11 45 82 15 5 24 15 45 82
30
Double rotation : left of right
เกิด Imbalance N1 N2 N3 N1 N3 M M N O P N2 P N O
31
ตัวอย่าง 11 15 5 24 11 24 5 15 45 18 45 18
32
Double rotation : right of left
Rotate Right เกิด Imbalance N3 N2 N1 N1 N3 P M N O P M N2 N O
33
ตัวอย่าง 11 10 5 24 5 11 3 10 3 6 24 6
34
ตัวอย่าง algorithm : rotate left
35
จงสร้าง AVL Tree จากข้อมูลที่นำเข้ามาตามลำดับดังต่อไปนี้ โดยให้แสดงผล Balance Factors ด้วย
23, 54, 34, 2, 14, 7, 26, 16, 87, 21, 9 5, 23, 57, 8, 12, 45, 21, 36, 28, 4, 22, 13, 27
36
แหล่งความรู้เพิ่มเติม
Animated AVL Tree 1 Animated AVL Tree 2
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.