Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Upcoming SlideShare
MTS2001-10-833
Next
Download to read offline and view in fullscreen.

0

Share

Download to read offline

Tree1

Download to read offline

เรื่อง ต้นไม้เอวีแอล

Related Books

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

Tree1

  1. 1. ตนไมเอวีแอล
  2. 2. ตนไมเอวีแอล ตนไมเอวีแอลคือตนไมคนหาทวิภาคที่มีความสมดุลกลาวคือ ความสูงของตนไมยอยดายซาย และความสูงของตนไมยอยดานขวา ตางกันไมเกิน 1 (น้ําหนักของตนไมจะเปน 0,1,-1 จึงจะเปน AVL Tree) ถูกออกแบบโดยนักคณิตศาสตรชาวรัสเซีย 2 คน คือ G.M Adelson Velskil และ E.M. Landis ซึ่งจะทําใหการคนหาขอมูลในตนไมคนหา ทวิภาคที่มีความสมดุลสามารถทําไดเร็วกวาการคนหาขอมูลในตนไม คนหาทวิภาคที่ไมมีความสมดุล
  3. 3. ตนไมเอวีแอล ภาพ ตนไมคนหาทวิภาคที่ไมความสมดุล และตนไมคนหาทวิภาคที่มความสมดุล
  4. 4. การสรางตนไมเอวีแอล คือการสรางตนไมคนหาทวิภาคที่ ความสูงของตนไมยอยดานซายแลความสูงของตนไมยอยดานขวา ตางกันไมเกิน 1 ซึ่งถาหากมีการเพิ่ม หรือลบโหนดแลวทําใหเกิดความ ไมสมดุลแลวทําใหเกิดความไมสมดุล จะตองทําการปรับความสมดุล โดยการหมุนโหนด ซึ่งการไมสมดุลของตนไมจะเกิดขึ้น 4 กรณี คือ การสรางตนไมเอวีแอล
  5. 5. กรณีที่ 1 โหนดไมสมดุลเนื่องจากโหนดลูกดานซายของโหนดานซาย (Left of Left) เปนกรณีที่ตนไมคนหาทวิภาคไมมีความสมดุล อันเนื่องมาจาก ความสูงของตนไมยอยทางดานซายของโหนด C และความสูงของตนไมยอย ทางดานขวาของโหนด c ตางกันเกิน 1 ซึ่งสามารถแกไขใหตนไมคนหาทวิภาค มีความสมดุล โดยการหมุนโหนดที่ไมสมดุล (โหนด c) ไปดานขวา เพื่อใหเปน ลูกดานขวาของโหนด b และถาโสหนด b มีลูกดานขวาแลว ใหยายโหนดลูก ดานขวานั้นไปเปนลูกดานซายของโหนด c สวนลูกของโหนด a และลูกของ โหนด c ใหเปนลูกของโหนด a และโหนด c ตามลําดับเชนเดิม ดังภาพ การสรางตนไมเอวีแอล
  6. 6. ตนไมคนหาทวิภาคที่ไมมีความสมดุล ตนไมคนหาทวิภาคที่มีความสมดุล ภาพที่ การหมุนโหนดที่ไมสมดุลในกรณี Left of Left การสรางตนไมเอวีแอล
  7. 7. กรณีที่ 2 โหนดไมสมดุลเนื่องจากโหนดลูกดานขวาของโหนดลูกดานขวา (Right of Right) เปนกรณีที่ตนไมคนหาทวิภาคไมมีความสมดุล อันเนื่องมาวจาก ความสูงของ ตนไมยอยทางดานซายของโหนด a และความสูงของตนไมยอยทางดานขวาของโหนด a ตางกันเกิน 1 ซึ่งสามารถแกไขใหตนไมคนหาทวิภาคมีความสมดุล โดยการหมุนโหนดที่ ไมสมดุล (โหนด a ) ไปดานซาย เพื่อใหเปนลูกดานซายของโหนด b และถาโหนด b มีลูก ดานซายแลว ใหยายลูกโหนดดานซายนั้นไปเปนลูกดานขวาของโหนด a สวนลูกของ โหนด a และลูกของโหนด c ใหเปนลูกของโหนด a และโหนด c ตามลําดับเชนเดิม ดังภาพ การสรางตนไมเอวีแอล
  8. 8. ตนไมคนหาทวิภาคที่ไมมีความสมดุล ตนไมคนหาทวิภาคที่มีความสมดุล ภาพ การหมุนโหนดที่ไมสมดุลในกรณี Right of Right การสรางตนไมเอวีแอล
  9. 9. กรณีที่ 3 โหนดไมสมดุลเนื่องจากโหนดลูกดานขวาของโหนดลูกดานซาย (Right of Left) เปนกรณีที่ตนไมคนหาทวิภาคไมมีความสมดุล อันเนื่องมาจาก ความสูง ของตนไมยอยทางดานซานของโหนด c และความสูงของตนไมยอยทางดานขวาของ โหนด c ตางกันเกิน 1 ซึ่งสามารถแกไขใหตนไมคนหาทวิภาคมีความสมดุล โดยการ หมุนโหนด a ไปดานซายเพื่อใหเปนลูกดานซายของโหนด b จากนั้นหมุนโหนด c ไป ดานขวาเพื่อใหเปนลูกดานขวาของโหนด b และถาโหนด b มีลูกโหนดแลว ใหยาย โหนดที่เปนลูกดานซายไปเปนลูกดานขวาของโหนด a และใหยายโหนดที่เปนลูก ดานขวาไปเปนลูกดานซายของโหนด c สวนลูกของโหนด a และลูกของโหนด c ให เปนลูกของโหนด a และโหนด c ตามลําดับเชนเดิม ดังภาพ การสรางตนไมเอวีแอล
  10. 10. ตนไมคนหาทวิภาคที่ไมมีความสมดุล ตนไมคนหาทวิภาคที่มีความสมดุล ภาพที่ 12 การหมุนโหนดที่ไมสมดุลในกรณี Right of Left การสรางตนไมเอวีแอล
  11. 11. กรณีที่ 4 โหนดไมสมดุลเนื่องจากโหนดลูกดานซายของโหนดลูกดานขวา (Left of Right) เปนกรณีที่ตนไมคนหาทวิภาคไมมีความสมดุล อันเนื่องมาจาก ความสูงของตนไม ยอยทางดานซายของโหนด a และความสูงของตนไมยอยทางดานขวาของโหนด a ตางกันเกิน 1 ซึ่งสามารถแกไขใหตนไมคนหาทวิภาคมีความสมดุล โดยการหมุนโหนด c ไปดานขวาเพื่อให เปนเปนลูกดานขวาของโหนด b จากนั้นหมุนโหนดไปโหนด a ไปดานซายเพื่อใหเปนลูกดาน วายของโหนด b และถาโหนด b มีลูกโหนดแลว ใหยายโหนดที่เปนลูกดานซายไปเปนลูก ดานขวาของโหนด a และใหยายโหนดที่เปนลูกดานขวาไปดปนลูกดานซายของโสหนด c สวน ลูกของโหนด a และลูกของโหนด c ใหเปนลูกของโหนด a และโหนด c ตามลําดับเชนเดิม ดัง ภาพ การสรางตนไมเอวีแอล
  12. 12. ตนไมคนหาทวิภาคที่ไมมีความสมดุล ตนไมคนหาทวิภาคที่มีความสมดุล ภาพ การหมุนโหนดที่ไมสมดุลในกรณี Left of Right การสรางตนไมเอวีแอล
  13. 13. จบแลวคะ

เรื่อง ต้นไม้เอวีแอล

Views

Total views

172

On Slideshare

0

From embeds

0

Number of embeds

3

Actions

Downloads

2

Shares

0

Comments

0

Likes

0

×