avl-tree

    1热度

    2回答

    这是一个AVL树C++ PROGRAMM它具有以下资源: "TreeNode.h" "AVLTree.h" "AVLTree.cpp" "Main.cpp" 我加了一个“TreeNode.cpp”,把从“AVLTree.cpp”的“节点::节点”功能,并把它放在“TreeNod.cpp”,包括“TreeNode.h”,并编译后,VS 2013引发错误C2661的线: 对应于“AVLTre

    2热度

    1回答

    最近,我在查看使用链接作为链表的散列表。我来到了使用“链”作为AVL树的可能性。 因此,散列表中的每个桶都将具有很少的AVL树的根指针。维基百科说哈希表的最坏情况是O(n)(http://en.wikipedia.org/wiki/Hash_table)。但是,如果我们使用每个桶的“链”作为AVL树,我们可以将其降至O(ln n)。 我错过了什么吗? 据我所知,我们可以用AVL树替换链表。 这样的

    0热度

    1回答

    我如何证明节点中的高度ħ AVL树的最小数目是 (5 + 2 * 5 ^(1/2))* (((1 + 5 ^(1/2))/ 2)^ h)+(5-2 * 5 ^(1/2))*((((1-5 ^(1/2))/ 2)^ h)-1?

    0热度

    1回答

    我已经为字符串做了AVL树,并且树本身运行良好:插入,删除,搜索都工作正常。但是,valgrind正在给我一个错误。 Valgrind说这个错误出现在我的stringDuplicate函数中(我对valgrind指出的特定行号发表了评论),并且这个stringDuplicate函数被我的treeInsert函数调用(我在treeInsert调用stringDuplicate时做了一个注释) 。有人

    0热度

    1回答

    我想创建一个AVL树迭代器,但我遇到麻烦这样做。这是我必须得到第一个节点的代码,它成功返回最小值。 AVLPtr node = iter->list->root; AVLPtr current = iter->current; AVLPtr last = iter->last; AVLPtr parent; if(current == NULL || current->parent ==

    1热度

    1回答

    B树是像AVL树一样的自平衡树。 HERE我们可以看到左右旋转是如何保持AVL树平衡的。 和HERE是解释B树插入的链接。这种插入技术并不涉及任何旋转,如果我没有错,保持树木平衡。因此它看起来更简单。 问:是否有任何类似的(或没有使用旋转的其他技术)保持avl树平衡?

    0热度

    1回答

    AvlTree Insert(ElementType X, AvlTree T) { 1 if(T == NULL) 2 { 3 /* Create and return a one-onde tree */ 4 T = malloc(sizeof(struct AvlNode)); 5 if(T == NULL) 6 Fa

    0热度

    1回答

    private static void duplicate(AVLNode bTree) { if(bTree != null) { if(bTree.left == bTree.right) { duplicateNum += bTree.value + " "; } } } 我试图编写一个方法,在AVL

    1热度

    1回答

    只是一个关于avl树的简单问题。 如果我有这棵树: 27 /\ 9 50 /\ 2 15 \ 21 它为什么会平衡这个答案?: 15 /\ 9 27 //\ 2 21 50 这不是(或者是它们都有效吗?): 21 /\ 15 27 /\ \ 2 9 50

    0热度

    1回答

    我想知道AVL树重新平衡是否存在根本问题。根据几个教程,对于AVL插入,最大2旋转它可以是平衡的。但是,它可能取决于所谓的平衡。按照link查看树。 本来它有6个元素。假设我们插入最后一个值为3或4.5或5.5或6.5。无论如何,它将被插入到底部的左侧。作为总共7个元素的树,为了完美的平衡,我会认为它只有3行。 这将迫使新的根是6或6.5(如果我们插入6.5)。我真的无法想出一种在两轮内重新平衡它