red-black-tree

    -3熱度

    1回答

    如何查找紅黑樹中紅色節點的百分比?我熟悉紅黑樹的特性,但似乎無法將我的頭圍繞如何處理這個問題。我有一個想法,就是在構建它之後遍歷樹並計算紅色節點,但對於較大的輸入來說效率不高。

    3熱度

    1回答

    我一直盯着這一整天,稍微有些地方,但它仍然不能正常工作!只是試圖'插入'(真的插入,或找到它是否存在)一個元素k到一個LL紅黑樹。這是我的方法: Node * RPut(Node* p, const K& k, Node*& location) { // if you are at the bottom of the tree, // add new node at bott

    1熱度

    1回答

    我的紅黑樹算法刪除效果很好,除非我刪除根。哪裏只有一個孩子被保存,其餘的樹值都丟失。 我相信這個問題是在 ​​ 下面是用於刪除方法的線removeNode()方法: //Searching for value to remove public void removeSearch(int value) { RedBlackNode rt = root; while (rt !

    1熱度

    1回答

    我一直在看什麼,但關於紅黑樹和每一個,當計算樹的黑色高度CS講座,計數NULL節點爲黑色。爲什麼還要打擾?例如,樹下面: 如果我問你,這是什麼樹的黑色高度,你會說三。但是,如果我刪除了所有的NULL節點(因爲它們是隱含的)並再次問你,你會說兩個。它真的有所作爲嗎?我知道有些算法,如插入殼體,你必須檢查Uncle是Black但你會寫在代碼如下所示: Node *uncle = uncle(child

    0熱度

    2回答

    我正在使用scala.collection.mutable.TreeSet,並遇到一個問題,在調用-=時無法刪除元素。 我的代碼: val discovered = new TreeSet[Position]()(Ordering by { position => estimation(position) }) //Position is defined as: type Position =

    2熱度

    1回答

    我試圖使用算法提供的算法實現紅黑樹,算法第3版。一切工作正常,直到我測試刪除:似乎有算法中的錯誤。我無法找到網絡上的解決方案:其他解決方案(基於第二版算法)在仔細檢查時也失敗。 算法在這裏可以看到: Red-Black-Tree: Introduction to Algorithms (3rd edition) 不工作的算法: RB-DELETE(T, z) y = z y-original-

    2熱度

    2回答

    我只是RB樹的新手。在旋轉之後,我被絞死爲樹重新着色。 讓我們考慮下面的情況: - 插入順序:34,32,56,30,31 34 (B) 32 (B) 56 (B) 30 (R) 31 (R) 在上述情況下發生顏色衝突中的31插入,以30的父母以及高度不穩定發生。 因此,對於樹32,30,31,我們正在做左右旋轉,這與AVL樹中的做法相同。 爲了這

    3熱度

    2回答

    我真的很想深入理解一個TreeSet,特別是不使用比較器的無參數版本,是如何保持它包含的元素的。我無法在任何地方找到令人滿意的解釋。他們要麼對我來說太基本,要麼太先進。從我的研究中看來,TreeSets實際上將其元素存儲在TreeMap中,而TreeMaps實際上是紅黑樹。我對我對如何將元素添加到紅黑樹上的理解充滿信心。 我假設在java API的某個地方必須有一個算法或方法來執行元素插入到紅黑樹

    1熱度

    2回答

    我需要在NumPy數組中寫入大量的數字 - 數字對。由於很多這樣的對具有第二個值0,我想到了類似於字典的東西。問題是我已經閱讀了關於結構化數組的NumPy文檔,並且似乎像構建頁面上的字典那樣的字典只能使用字符串作爲關鍵字。 除此之外,我需要插入和搜索具有日誌(N)的複雜性。我想用常規的NumPy數組作爲存儲來製作自己的紅黑樹結構,但我相當確定有一個更簡單的方法可以解決這個問題。 語言是Python

    -1熱度

    1回答

    請告訴我是否有任何公式可以計算紅黑樹中的最小/最大紅色節點?