red-black-tree

    0熱度

    2回答

    我想根節點的顏色變成黑色時root.right和根的顏色是紅色的。 現在在此代碼首先我插入5,使得這根顏色將black.Then我插入6則該節點的顏色爲紅色,然後我插入7則此節點的顏色將是red.So現在這個節點和先前節點有紅色所以在這裏我需要改變以前的節點包含數據= 6 package redblack; public class Redblack { public enum Color

    0熱度

    1回答

    rb_tree中的insert_rebalance大多需要兩次旋轉? 我不這麼認爲! 「1」 是最新的插入節點。情況1:當前節點是紅色的,父親是紅色的,叔叔是紅色的。所以我們把父親的顏色設置爲黑色,叔父的顏色爲黑色,父親的顏色爲紅色,並將父親的父親設置爲當前節點,並繼續前進。 經過上述操作,再次是情況1。讓我們想象一下:如果它總是變成情況1,旋轉的數量不會只是2,也許更多。 我上面的陳述是正確的?

    0熱度

    1回答

    一些紅黑樹實現爲每個節點存儲父項。 哪些常見操作(insert,remove,pop_min,pop_max,iteration ...等)可以簡化使用這些額外的信息?

    -3熱度

    1回答

    在這個map例如: std::map<int, int> m; for (int i = 0; i < 1000; i++) m[2*i] = i; for (i = 0; i < 1000; i++) // just an example of filling a map m[2*i + 1] = i; 如何知道內部「紅黑樹」怎麼會是什麼樣子? 哪些節點將成爲其他節點

    0熱度

    2回答

    我被要求創建一個數據結構,其功能類似於插入節點,尋找具有一定的鍵值取O(LOGN)的節點。 我被要求在O(1)時間內找到中位數。 我一直在想使用順序統計樹,將選擇具有N/2級節點找到位數? 我在這裏看到了類似的問題,但我想:(Find median in O(1) in binary tree一個更好的解釋) 任何想法? 謝謝。

    0熱度

    1回答

    我很難理解這個概念, 問題是,既然黑節點是平衡的,那麼如果我們把樹作爲一個整體,RB樹就可能具有最大的不平衡性麼?

    1熱度

    1回答

    我有一個紅黑樹。 我想打印它的順序(所以數字將從最小到最大打印)。 這裏的印刷方法: public void printTreeInOrder(Node node){ //in-order printing (sorted) if (!(isNull(node))){ printTreeInOrder((node.getLeft())); Sys

    -1熱度

    4回答

    我有它由幾個小任務的分配: 我有,用來初始化一個數組,並用200/400/800值填充(各量 - 一次)。 我必須採取數組值並將它放在一個紅色的黑色樹中,並將某些條件轉換爲方法。 一些更多的任務。 我能做到這一切在主類,但是在我看來,我會好起來開始新的類 - handleArray。 如果我開始一個類,如: public class handlyArray{ protected int

    1熱度

    1回答

    我創建了一個雙向鏈表,並且哨兵節點的好處很明顯 - 在列表邊界沒有空檢查或特殊情況。 現在我正在寫一個紅黑樹,並試圖弄清楚這樣一個概念是否有任何好處。 我的實現是在this article (自頂向下插入/刪除)的基礎上最後兩個功能。作者使用「虛擬樹根」或「頭」來避免根插入/刪除算法的特殊情況。作者的頭節點的作用範圍本身 - 看起來是因爲它的有用性有限。 我碰到過的另一篇文章提到在頭部上方使用永久

    2熱度

    2回答

    我被華金昆卡阿貝拉閱讀this great article。他談到使用紅黑樹實現一張表,而不是一個雙向鏈表。 我有一些麻煩,理解如何,這可能涉及到發生着變化的緩衝區。例如,拿這兩個緩衝器(原件,附加): Hello!\0 Original y Append 而且我們說這塊表看起來像這樣: Hey!\0 : buffer start length original 0 2 ori