これが私が作らなければならなかった私のAVLツリーです(うまくいけばはっきりと見えるのに十分な大きさです)
http://oi46.tinypic.com/2426fer.jpg
私のツリーが私がしなければならなかったことに対して正しいことは知っていますが、おそらく私の図面でわかるように、AVLツリーの高さとそれがどのように機能するかについてはわかりません。本当にあなたが助けてくれることを願っています、私はAVL木に関係している他のすべての概念を理解しています。ありがとう
これが私が作らなければならなかった私のAVLツリーです(うまくいけばはっきりと見えるのに十分な大きさです)
http://oi46.tinypic.com/2426fer.jpg
私のツリーが私がしなければならなかったことに対して正しいことは知っていますが、おそらく私の図面でわかるように、AVLツリーの高さとそれがどのように機能するかについてはわかりません。本当にあなたが助けてくれることを願っています、私はAVL木に関係している他のすべての概念を理解しています。ありがとう
binarySearchTree に問題があった以前の質問を削除しました。質問を削除する前に私が書いた解決策は次のとおりです。多分それは助けになるでしょう。
if (tree.left == null && tree.right == null) {
if (compResult < 0) {
tree.left.data = item;
return true;
}
if (compResult > 0) {
tree.right.data = item;
return true;
}
}
if (compResult < 0) {
if (tree.left == null) { //RED FLAG
tree.left.data = item; //BUT tree.left IS NULL!!
return true;
} else
add(tree = tree.left, item, count);
}
if (compResult > 0) {
if (tree.right == null) { //RED FLAG
tree.right.data = item; //BUT tree.right IS NULL!!
return true;
} else
add(tree = tree.right, item, count);
}
これらを修正するには、新しいノードを作成し、それを tree.left または tree.right に割り当てます。
再帰的な追加ではなく、反復的な追加を行う必要があります。より高速です。