งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

Binary Search Tree สาขาวิชาคอมพิวเตอร์และเทคโนโลยี อ. เลาขวัญ งามประสิทธิ์

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "Binary Search Tree สาขาวิชาคอมพิวเตอร์และเทคโนโลยี อ. เลาขวัญ งามประสิทธิ์"— ใบสำเนางานนำเสนอ:

1 Binary Search Tree สาขาวิชาคอมพิวเตอร์และเทคโนโลยี อ. เลาขวัญ งามประสิทธิ์

2 นิยามของโครงสร้างข้อมูล Binary Search Tree • ทุกโหนดที่อยู่ทางด้าน sub-tree ด้านซ้าย จะต้องมีค่าน้อยกว่า root • ทุกโหนดที่อยู่ทางด้าน sub-tree ด้านขวา จะต้องมีค่ามากกว่าหรือเท่ากับ root • แต่ละ sub-tree จะต้องมีคุณสมบัติตามข้อ 1 และ 2

3 ตัวอย่าง binary search tree (a) (b) (c) (d)

4 ตัวอย่าง binary tree ที่ไม่จัดว่าเป็น binary search tree (a) (c) 2 48 (b)

5 การดำเนินการของ binary search tree •Traversal ท่องไปใน binary search tree เหมือนกับการท่องใน binary tree คือ - Preorder - Inorder - Postorder •Search ค้นหาโหนดที่ต้องการ •Insert แทรกโหนด •Delete ลบโหนด

6 Inorder Traversal •Inorder-tree(x) 1.If x != NULL 2. then Inorder-tree(left of x) 3. print x 4. Inorder-tree(right of x)

7 Preorder Traversal •Preorder-tree(x) 1.If x != NULL 2. then print x 3. Preorder-tree(left of x) 4. Preorder-tree(right of x)

8 Postorder Traversal •Postorder-tree(x) 1.If x != NULL 2. then Postorder-tree(left of x) 3. Postorder-tree(right of x) 4. print x

9 การลบโหนดออกจาก Tree 1. กรณีที่โหนดนั้นเป็น leaf สามารถลบออกได้ เลย 2. กรณีที่โหนดนั้นมี 1 child 3. กรณีที่โหนดนั้นมี 2 children

10 การลบโหนดออกจาก Tree: กรณีที่โหนดนั้นมี 1 child beforeafter

11 การลบโหนดออกจาก Tree: กรณีที่โหนดนั้นมี 2 child before after Replace the key of this node with the smallest key of right subtree

12 แหล่งความรู้เพิ่มเติม Animated Binary Search Tree 1 ch/dsa/trees/btree.html Animated Binary Search Tree Animated Binary Search Tree 2 ctures/Trees/BST.html

13 AVL Tree สาขาวิชาคอมพิวเตอร์และเทคโนโลยี อ. เลาขวัญ งามประสิทธิ์

14 นิยามของ AVL Tree •Tree นั้นจะต้องเป็น binary search tree •Tree นั้นจะต้องเป็น Balanced tree Balanced tree หมายถึง ทุกโหนดใน tree ต้องมีความสูงของ left sub-tree และ right sub- tree ต่างกันไม่เกิน 1 Balance Factor = |H L – H R |  1

15 เกิด Imbalance ที่โหนด 12 ดังนั้น tree นี้ไม่เป็น AVL Tree ตัวอย่างการตรวจสอบ AVL Tree Node5 H L = 0, H R = 0  BF = |0 - 0| = 0 Node15 H L = 1, H R = 0  BF = |1 - 0| = 1 Node43 H L = 0, H R = 0  BF = |0 - 0| = 0 Node20 H L = 2, H R = 1  BF = |2 - 1| = 1 Node7 H L = 0, H R = 0  BF = |0 - 0| = 0 Node12 H L = 1, H R = 3  BF = |1 - 3| =

16 พิจารณาว่า Tree ต่อไปนี้เป็น AVL Tree หรือไม่ เป็น AVL Tree

17 พิจารณาว่า Tree ต่อไปนี้เป็น AVL Tree หรือไม่ ดังนั้น ไม่เป็น AVL Tree เกิด Imbalance ที่โหนด 14 และ 56

18 Unbalanced Tree •Left of Left •Right of Right •Right of Left •Left of Right

19 Left of Left • เกิดเมื่อมีการแทรกโหนดเข้าไปด้าน sub-tree ฝั่ง ซ้ายของโหนดลูกทางซ้าย เกิด Imbalance

20 Right of Right • เกิดเมื่อมีการแทรกโหนดเข้าไปด้าน sub-tree ฝั่ง ขวาของโหนดลูกทางขวา เกิด Imbalance

21 Right of Left • เกิดเมื่อมีการแทรกโหนดเข้าไปด้าน sub-tree ฝั่ง ขวาของโหนดลูกทางซ้าย เกิด Imbalance

22 Left of Right • เกิดเมื่อมีการแทรกโหนดเข้าไปด้าน sub-tree ฝั่ง ขวาของโหนดลูกทางซ้าย เกิด Imbalance

23 การทำ Balancing Tree •Single rotation การหมุน 1 ครั้ง ใช้กรณีเกิด Left of Left และ Right of Right •Double rotation การหมุน 2 ครั้ง ใช้กรณีเกิด Right of Left และ Left of Right

24 Single rotation : rotate right A C B A C B Rotate Right เกิด Imbalance

25 ตัวอย่าง

26 ตัวอย่าง Rotate Right

27 Single rotation : rotate left C A B C A B Rotate Left เกิด Imbalance

28 ตัวอย่าง

29 ตัวอย่าง

30 Double rotation : left of right N3 N2 P ON N1 M N2 M NO N3 P เกิด Imbalance

31 ตัวอย่าง

32 Double rotation : right of left N3 N2 P O Rotate Right N N1 M N3 N2 P ON N1 M เกิด Imbalance

33 ตัวอย่าง

34 ตัวอย่าง algorithm : rotate left

35 จงสร้าง AVL Tree จากข้อมูลที่ นำเข้ามาตามลำดับดังต่อไปนี้ โดย ให้แสดงผล Balance Factors ด้วย 1)23, 54, 34, 2, 14, 7, 26, 16, 87, 21, 9 2)5, 23, 57, 8, 12, 45, 21, 36, 28, 4, 22, 13, 27

36 แหล่งความรู้เพิ่มเติม Animated AVL Tree 1 h/dsa/trees/avltree.html Animated AVL Tree 2 res/Trees/AVL/AVLTree.swf


ดาวน์โหลด ppt Binary Search Tree สาขาวิชาคอมพิวเตอร์และเทคโนโลยี อ. เลาขวัญ งามประสิทธิ์

งานนำเสนอที่คล้ายกัน


Ads by Google