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建築是一個熱點地點。