紅黑樹的實現方法

2021-09-19 15:21:03 字數 1211 閱讀 3410

package day02;

import org.junit.test;

public class redblackbinarysearchtree

@override

public string tostring()

/*** 先序遍歷節點

** @param h

* @param s

* @return

*/private string visit(node h, string s)

}/**

* 左旋,h成為x的左子節點,x的左樹變為h的右樹

** @param h

* @return h的右子節點(子樹的新root)

*/private node rotateleft(node h)

/*** 右旋,h成為x的右子節點,x的的右樹變為h的左樹

** @param h

* @return h的左子節點(子樹的新root)

*/private node rotateright(node h)

/*** 判斷當前節點是否為紅色

** @param node

* @return

*/private boolean isred(node node)

/*** 獲取當前節點的子節點總數

** @param n

* @return

*/private int size(node n)

/*** 節點換色,父節點固定為紅,左右子節點固定為黑

** @param h

*/private void flipcolors(node h)

/*** @param h 用來對比的節點

* @param key 鍵

* @param value 值

* @return

*/private node put(node h, string key, string value)

@test

public void test() ;

// 遍歷插入節點

for (string s : inputlist)

system.out.println(h.tostring());

system.out.println(h.numtotalnodes);

}}

紅黑樹下 紅黑樹的實現

1.實現紅黑樹的基本思想 實際上,紅黑樹是有固定的平衡過程的 遇到什麼樣的節點分布,我們就對應怎麼去調整。只要按照這些固定的調整規則來操作,就能將乙個非平衡的紅黑樹調整成平衡的。首先,我們需要再來看一下紅黑樹的定義 在插入 刪除節點的過程中,第 三 四點要求可能會被破壞,所以 平衡調整 實際上就是把...

紅黑樹下 紅黑樹的實現

1.實現紅黑樹的基本思想 實際上,紅黑樹是有固定的平衡過程的 遇到什麼樣的節點分布,我們就對應怎麼去調整。只要按照這些固定的調整規則來操作,就能將乙個非平衡的紅黑樹調整成平衡的。首先,我們需要再來看一下紅黑樹的定義 在插入 刪除節點的過程中,第 三 四點要求可能會被破壞,所以 平衡調整 實際上就是把...

紅黑樹實現

紅黑樹 是一棵二叉搜尋樹,它在每個節點上增加了乙個儲存位來表示節點的顏色,可以是red或black。通過對任何一條從根到葉子簡單路徑上的 顏色來約束,紅黑樹保證最長路徑不超過最短路徑的兩倍,因而近似於平衡 由於性質中紅色節點不連續,最短路徑可為全是連續黑結點,最長路徑則由於紅節點不連續,則每間隔乙個...