繁体   English   中英

二进制搜索树:AVL树中节点的高度

[英]Binary Search Trees: Height of a node in an AVL tree

这是我必须制作的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。

您应该进行迭代添加,而不是进行递归添加,这样做会更快。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM