我想增加一棵avl樹來爲每個節點添加額外的屬性,例如它包含的節點數(即在其子樹中)。如何增加AVL樹?
從這個avl java執行代碼在這裏 http://www.blackbam.at/blackbams-blog/2012/05/04/avl-tree-implementation-in-java/ 我想添加一些代碼給它,這樣每個節點將包含一個size元素。
在AvlNode類,我把它改爲:
/** Here is the AVL-Node class for Completenesse **/
public class AvlNode {
public AvlNode left;
public AvlNode right;
public AvlNode parent;
public int key;
public int balance;
public int size;
public AvlNode(int k) {
left = right = parent = null;
balance = 0;
key = k;
size = 1;
}
public String toString() {
return "" + key;
}
}
但現在對於AvlTree類,我在哪裏其實插入過程中添加代碼來更新節點的大小值和刪除操作。我認爲這是rotateleft和rototeight方法。這是正確的嗎?
你試過了嗎? –