1. 程式人生 > >數據結構Java版之紅黑樹(八)

數據結構Java版之紅黑樹(八)

如何 當前 鏈接 根節點 java版 -- 查找 變色 繼承

  紅黑樹是一種自動平衡的二叉查找樹,因為存在紅黑規則,所以有效的防止了二叉樹退化成了鏈表,且查找和刪除的速度都很快,時間復雜度為log(n)。

  什麽是紅黑規則?

  1.根節點必須是黑色的。

  2.節點顏色要麽是紅要麽是黑。

  3.樹的每一個分叉存在相同黑色節點。

  4.不允許存在兩個連續的紅色節點。

  為不斷適應紅黑規則,在寫程序中如何調整?

  1.旋轉

    ---單旋轉

      外側節點單旋轉。外側節點指的是左子樹的左孩子節點,右子樹的右孩子節點。

    ---雙旋轉

      內側節點雙旋轉。內側節點指的是左子樹的右孩子節點,右子樹的左孩子節點。

  2.變色

    ---節點顏色進行更改。

    ---強制將根節點顏色變為黑色。

  博文參考鏈接:http://www.cnblogs.com/skywang12345/p/3245399.html  (紅+黑節點指的是父節點紅色,當前節點黑色。黑+黑是父節點黑色,當前節點黑色。前面的顏色可看做是通過繼承來的)。

數據結構Java版之紅黑樹(八)