red-black-tree

    -2熱度

    1回答

    我想在C中建立一個簡單的紅黑樹。不幸的是,我遇到了一個分割錯誤,我不知道如何解決。我已經包含了下面的代碼並標記到發生故障的位置。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #define RED 1 #define BLACK 0 typedef struct RBN

    5熱度

    1回答

    在Linux內核中,爲了存儲進程的內存區域,Linux使用鏈表和紅黑樹。 find_vma是一個函數,它定位第一個內存區域,其vm_end字段大於通過紅黑樹的傳遞地址。但是,我發現它沒有對find_vma()中的紅黑樹的保護(如鎖)。如果另一個線程調用rb_erase函數來刪除樹上的某個元素,該怎麼辦?

    0熱度

    1回答

    我被困在一個任務中,我可以使用一點幫助。基本上,我的工作是設計一個包裝禮物的工廠。我們的股票是方形底座的盒子(不一定是立方體)。對於每個盒子,我們知道盒子底部的尺寸(我稱之爲側面)和高度(高度)。當工廠收到包裝禮物的請求時,顧客知道適合現在的最小盒子的側面和高度值,但我們將爲盒子提供我們目前擁有的最小量。 這個想法是規劃一個數據結構來管理框。該數據結構具有支持以下方法: INSERTBOX(側,高

    1熱度

    1回答

    CFS調度程序挑選基於最小虛擬時間和有效地得到這個值的使用紅黑樹(rbtree),使用rbtree我們將獲得最低O(1H)這裏h是rbtree的高度下一道工序。但是,使用min-heap,我們只能在O(1)時間內獲得最小虛擬時間進程。我只想知道爲什麼min-heap在CFS實現中沒有考慮,並且在內核級別使用min-heap有什麼困難?

    4熱度

    1回答

    我想實現紅黑樹的CLRS僞代碼。當我試圖運行該程序時,會拋出NullPointerException。請檢查代碼並找出它有什麼不對。歡迎任何進一步的建議。 public class RedBlackTree { Node nil; Node root; String RED = "red"; String BLACK = "black"; public void left_rotat

    4熱度

    1回答

    我想將一個紅色的黑色BST轉換爲一個數組,但出現了一些問題,我無法弄清楚是什麼。 這裏的代碼片段我曾經這樣做: public T[] toArray() { T[] array = (T[]) Array.newInstance(clazz, count); inOrder(root, array, 0); return array; } private v

    2熱度

    1回答

    有沒有機會在一次通過中更新TreeMap中最少密鑰項(firstEntry())的密鑰? 因此,例如,如果我pollFirstEntry(),它需要O(log n)時間來檢索和刪除條目。之後,我使用所需的鍵創建一個新條目並將其放回到TreeMap中,同時還需要O(log n)時間。因此,我花O(2 log n)時間,在邏輯上它可能只是O(1 + log n)=(log n)時間。 我很樂意避免刪除

    1熱度

    1回答

    我正在研究從CLRS紅黑樹。 我有兩個關於紅黑樹屬性討論部分的問題。 從CLRS通道如下: 紅黑樹是二叉樹滿足以下紅黑屬性: 每個節點是紅色或黑色 根是黑色 每個葉(NIL)是黑 如果一個節點是紅色的,那麼這兩個其子黑 對於每個節點,從該節點的所有簡單路徑,以後代葉中含有相同數量的黑色節點 首先的,它說爲紅色黑樹是二叉樹。爲什麼他們不說紅黑樹是二叉查找樹。我認爲紅黑樹的全部目的是爲了在搜索樹中保持

    0熱度

    1回答

    我想實現使用教科書僞代碼的RBT,但我得到一個空指針異常。我試圖添加對空值的檢查,但它只是在另一個地方的另一個空值處崩潰。我的猜測是,我不應該有這麼多的空檢查開始(否則僞代碼會反映)。無論如何,下面是我的代碼相關部分。我想感謝所有幫助我能得到至少縮小的問題: public class RBtree { public static Node root; //root of RBT

    1熱度

    1回答

    我想在紅黑樹中插入節點。函數rotate_left,rotate_right,插入正確,但rb_fixup似乎是錯誤的。紅色顯示爲1,黑色顯示爲0.我已經實施了CLRS的算法。當插入第三個元素時,會出現分段錯誤。 rb_fixup的代碼是: struct node { int data; int color; struct node *left; str