1. 程式人生 > >理解二叉樹,平衡二叉樹,紅黑樹

理解二叉樹,平衡二叉樹,紅黑樹

c++的STL 中set,map是紅黑樹(紅黑樹是平衡二叉樹的一種),我們需要深入理解紅黑樹,平衡二叉樹的起源。為什麼要用紅黑樹?紅黑樹的起源,自然是二叉查詢樹了,這種樹結構從根節點開始,左子節點小於它,右子節點大於它。每個節點都符合這個特性,所以易於查詢,是一種很好的資料結構。但是它有一個問題,就是容易偏向某一側,這樣就像一個連結串列結構了,失去了樹結構的優點,查詢時間會變壞。

紅黑樹就是一種平衡樹,它可以保證二叉樹基本符合矮矮胖胖的結構,但是理解紅黑樹之前,必須先了解另一種樹,叫2-3樹,紅黑樹背後的邏輯就是它。平衡二叉樹:紅黑樹: