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

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

 โครงสร้างข้อมูลแบบ Tree ( ต่อ ) วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)

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


งานนำเสนอเรื่อง: " โครงสร้างข้อมูลแบบ Tree ( ต่อ ) วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)"— ใบสำเนางานนำเสนอ:

1  โครงสร้างข้อมูลแบบ Tree ( ต่อ ) วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)

2 โครงสร้างข้อมูลแบบ Tree  ต้นไม้แบบฮีป (Heap Tree) เป็นการจัดโครงสร้างข้อมูลแบบต้นไม้ไบนารีเกือบ สมบูรณ์แบบหนึ่ง โดยที่ต้นไม้ไบนารีเกือบสมบูรณ์แบบ นี้ มีข้อกำหนดว่า ค่าที่บรรจุอยู่ภายในโหนดใดๆ ที่ เป็นโหนดพ่อจะต้องมีค่าสูงกว่าหรือเท่ากับโหนด ลูกทั้งสองของมัน (Max Heap Tree)

3 ต้นไม้แบบฮีป (Heap Tree)  ตัวอย่างต้นไม้แบบฮีป

4 ต้นไม้แบบฮีป (Heap Tree)  ตัวอย่าง ที่ไม่ถูกต้อง

5 ต้นไม้แบบฮีป (Heap Tree)  Reheap Up สลับ Node กับ Parent จนกว่าจะถูกตำแหน่ง

6 ต้นไม้แบบฮีป (Heap Tree)  Reheap Down สลับ Node กับ Child ที่มีค่ามากกว่า

7 ต้นไม้แบบฮีป (Heap Tree)  การใส่ข้อมูลเข้าไปในฮีปมีขั้นตอนดังนี้ 1. ใส่ข้อมูลเข้าไปที่โหนดสุดท้ายของฮีป 2. ถ้าข้อมูลที่ใส่เข้าไปนั้นทำให้ได้เป็นต้นไม้ฮี ปการใส่ก็เสร็จสิ้น 3. ถ้าต้นไม้ที่ได้ไม่เป็นต้นไม้ฮีป ให้ทำการปรับ ต้นไม้ที่ได้ให้เป็นฮีป โดยการเปรียบเทียบค่าที่ใส่เข้า มาใหม่กับโหนดพ่อของมัน ถ้าโหนดที่ใส่เข้าไปมีค่า มากกว่าให้สลับที่ ทำเรื่อยๆจนกระทั่งปรับสิ้นสุด

8 ต้นไม้แบบฮีป (Heap Tree)  เติมค่า 10 เข้าไปในต้นไม้ฮีป

9 ต้นไม้แบบฮีป (Heap Tree)

10 ต้นไม้แบบฮีป (Heap Tree)  ฮีปใหม่ที่ได้

11 ต้นไม้แบบฮีป (Heap Tree)  ลบค่า 10 ออกจากฮีป

12 ต้นไม้แบบฮีป (Heap Tree)

13  ฮีปใหม่ที่ได้

14 โครงสร้างข้อมูลแบบ Tree  ต้นไม้เอวีแอล (AVL Tree) เป็นไบนารีเซิร์ซเทรีแบบต้นไม้ไบนารีสมดุล : ถ้า T คือต้นไม้ใดๆ และ N คือโหนดใดๆ บนต้นไม้ T แล้ว ความแตกต่างระหว่างความสูงของต้นไม้ยอ่ย (Sub Tree) ที่อยู่ทางขวา และทางซ้าย ของ N จะ ถูกเรียกว่า บาลานซ์แฟคเตอร์ (Balance Factor) และต้นไม้ T จะถูกเรียกว่าต้นไม้สมดุล เมื่อบาลานซ์ แฟคเตอร์ของ N ใดๆ ต้องมีค่าไม่เกิน |1| ( ต้องมีค่า เป็น -1 หรือ 0 หรือ 1)

15 ต้นไม้เอวีแอล (AVL Tree) AVL Non-AVL น้ำหนักความสูงของ node = ความสูง Subtree( ซ้าย ) - ความสูง Subtree( ขวา )

16 ต้นไม้เอวีแอล (AVL Tree)  AVL TREE เมื่อมี Tree ที่ไม่สมดุลจะเกิดการหมุน เพื่อให้สมดุลซึ่งมี 4 วิธี 1. การหมุนซ้าย : โหนดทางขวามากกว่าซ้าย ยก โหนดที่อยู่ขวาขึ้นมา 2. การหมุนขวา : โหนดทางซ้ายมากกว่าขวา ยก โหนดที่อยู่ซ้ายขึ้นมา 3. การหมุนขวาไปซ้าย : หมุนขวาก่อน แล้วค่อยหมุน ซ้าย 4. การหมุนซ้ายไปขวา : หมุนซ้ายก่อน แล้วค่อยหมุน ขวา

17 ต้นไม้เอวีแอล (AVL Tree) - การหมุน ซ้าย  การหมุนซ้าย ไม่สมดุล สมดุล

18 ต้นไม้เอวีแอล (AVL Tree) - การหมุน ขวา  การหมุนขวา

19 ต้นไม้เอวีแอล (AVL Tree) - การหมุน ขวาไปซ้าย หมุนขวาครั้ง แรก หมุนซ้ายครั้ง ที่ 2

20 ต้นไม้เอวีแอล (AVL Tree) - การหมุน ซ้ายไปขวา หมุนซ้ายครั้ง แรก หมุนขวาครั้ง ที่ 2

21 การใส่โหนดใหม่เข้าไปใน AVL Tree  ถ้า node เข้าไปใหม่ทำให้ Tree เสียสมดุล ทำให้ สมดุลได้โดยการหมุน  ตัวอย่าง ใส่ node 5,7,10,15,19,20

22 การใส่โหนดใหม่เข้าไปใน AVL Tree  ใส่ node 5,7,10,15,19,20

23 การใส่โหนดใหม่เข้าไปใน AVL Tree  ใส่ node 5,7,10,15,19,20

24 การลบ node ใน AVL TREE  ถ้าลบโหนดออกไปแล้วเกิดเสียสมดุล ก็ทำให้ต้นไม้ สมดุล โดยการหมุน เมื่อลบ node 2 เมื่อลบ node 4

25 การลบ node ใน AVL TREE  เมื่อไม่สมดุล ก็หมุนให้สมดุล จะได้เป็น


ดาวน์โหลด ppt  โครงสร้างข้อมูลแบบ Tree ( ต่อ ) วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)

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


Ads by Google