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

More Related Content

More from Kitdamas Wangpreecha (10)

Tree.three
Tree.threeTree.three
Tree.three
 
Tree.two
Tree.twoTree.two
Tree.two
 
Tree.one
Tree.oneTree.one
Tree.one
 
Tree
TreeTree
Tree
 
Tree 2
Tree 2Tree 2
Tree 2
 
Tree
TreeTree
Tree
 
Pu
PuPu
Pu
 
Tree
TreeTree
Tree
 
Tree
TreeTree
Tree
 
story 1
story 1story 1
story 1
 

Tree1