avl-tree

    0热度

    8回答

    我希望此代码成为可能。 template<typename K, typename T, typename Comparer> class AVLTree { ... void foo() { ... int res = Comparer::compare(key1, key2); ... } ... }; 具体

    0热度

    1回答

    我发布了您使用我开发的AVL tree的代码。下面列出了插入方法avlinsert的方法。我在纸上开发了这个代码,它没有经过测试,但我希望这会起作用。我想讨论的主要问题是节点首先查看代码的平衡因素。通过这种方式,这个想法将变得清晰,我想问。所以这里是代码: treeNode* avlinsert(treeNode* tree, int info) { treeNode* ne

    2热度

    2回答

    要计算AVL树中节点的平衡因子,我们需要找到左子树的高度和右子树的高度。然后,我们从它的左子树的高度减去右子树的高度: balancefactor = leftsubtreeheigh - rightsubtreeheight 我的问题是:如何计算左子树或右子树的高度? 例如,在给定附图根节点40的左子树的高度是4和40右子树的高度为2,从而高度的差为2 如何在C++中执行此操作?我不想使用递归,

    24热度

    4回答

    假设我有两棵AVL树,第一棵树的每个元素都小于第二棵树的任何元素。将它们连接成一个AVL树最有效的方法是什么?我到处搜索,但没有发现任何有用的东西。

    9热度

    4回答

    上面的图像来自"Wikipedia's entry on AVL trees"维基百科指示不平衡。 这棵树如何不平衡已经? 下面是文章报价: 节点的平衡因子是它的右子树的高度减去它的左子树的高度,并与平衡因子1,0节点,或-1被认为是平衡。具有任何其他平衡因子的节点被认为是不平衡的,并且需要重新平衡树。平衡因子可以直接存储在每个节点或从子树的高度计算。 左侧和右侧子树的高度均为4.左侧树的右侧子树

    2热度

    1回答

    我有一个大的AVL Tree,我在程序期间从未分类的集合(它将在稍后用于插入/删除项目)中构建一些时间。 是否有比在每个项目上使用简单插入更好的算法?首先对收集进行排序然后尝试以不同的方式构建它会更有效吗? 我的应用程序分析告诉我,这个AVL建筑是一个热点地点。