0

これが私が作らなければならなかった私のAVLツリーです(うまくいけばはっきりと見えるのに十分な大きさです)

http://oi46.tinypic.com/2426fer.jpg

私のツリーが私がしなければならなかったことに対して正しいことは知っていますが、おそらく私の図面でわかるように、AVLツリーの高さとそれがどのように機能するかについてはわかりません。本当にあなたが助けてくれることを願っています、私はAVL木に関係している他のすべての概念を理解しています。ありがとう


4

1 に答える 1

0

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 に割り当てます。

再帰的な追加ではなく、反復的な追加を行う必要があります。より高速です。

于 2012-12-08T02:02:40.817 に答える