[理工] AVL樹的建立

作者: oklp1415 (天生我材)   2014-03-25 00:29:16
Show the detail steps of inserting the following values into an AVL tree:
65, 35, 40, 70, 50, 80, 55, 60, 45, 43, 30
我的問題是這樣
40
/ \
35 65
/ \
50 70
\
80 加入80後要如何去做調整呢?? 還是無須作調整
繼續下一個node?
因為對這種辨別方式不太了解
40
/ \
35 65
/ \
50 70
\ \
55 80
等到這樣才需要做調整嗎?? 求AVL詳解,3Q
作者: kiki86151 (魯飯)   2014-03-25 01:26:00
只要高度差2就要一律都要調整,沒看懂AVL定義吧以第一顆插80為例 以root=40來看height left=1 right=3
作者: hsuanyao (New Life)   2014-03-25 07:27:00
接樓上 所以40 65 70要調整
作者: cs228 (秋)   2014-03-25 08:33:00
http://imgur.com/EUujsNh以65為root的子樹為平衡不需要調整以50為root的樹為平衡(左右子樹高度不超過1),以65為root的樹左右子樹不平衡,以root到不平衡的方向找由root到最後你加入那個點的方向不平衡的樹,一切以root往你加入的那的點開始算兩格這邊的root是指不平衡的樹root不是整棵樹的rootL=左 R=右挑40 45 43必須是 40 35 45 43那棵樹不平衡才挑的第三列最後一張是因為,小的樹調整完後,可以使整棵樹平衡原則是小的樹不平衡先調
作者: PTT007 ( )   2014-03-25 14:10:00
把每個節點的高度標出來,看2在哪裡,從那點開始算
作者: hsuanyao (New Life)   2014-04-03 17:05:00
用每個點去檢查左右子樹

Links booklink

Contact Us: admin [ a t ] ucptt.com