二叉查詢樹BST和紅黑樹,果然。。。
阿新 • • 發佈:2018-12-25
學習、長進、總結
二叉查詢樹Binary Search Tree。
二叉排序樹或者是一棵空樹,或者是具有下列性質的二叉樹: (1)若左子樹不空,則左子樹上所有結點的值均小於或等於它的根結點的值; (2)若右子樹不空,則右子樹上所有結點的值均大於或等於它的根結點的值; (3)左、右子樹也分別為二叉排序樹; 二分查詢的思想:查詢所需的最大次數等同於二叉查詢樹的高度。二叉查詢樹的缺點就是多次插入新節點導致的不平衡,幾乎成為線性;
所以紅黑樹出現了。。。
紅黑樹(Red Black Tree) 是一種自平衡二叉查詢樹,是在計算機科學中用到的一種資料結構,典型的用途是實現關聯陣列。 它是在1972年由Rudolf Bayer發明的,當時被稱為平衡二叉B樹(symmetric binary B-trees)。後來,在1978年被 Leo J. Guibas 和 Robert Sedgewick 修改為如今的“紅黑樹”。 紅黑樹和AVL樹類似,都是在進行插入和刪除操作時通過特定操作保持二叉查詢樹的平衡,從而獲得較高的查詢效能。 它雖然是複雜的,但它的最壞情況執行時間也是非常良好的,並且在實踐中是高效的: 它可以在O(log n)時間內做查詢,插入和刪除,這裡的n 是樹中元素的數目。性質
左旋轉:
逆時針旋轉紅黑樹的兩個節點,使得父節點被自己的右孩子取代,而自己成為自己的左孩子;
右旋轉:
順時針旋轉紅黑樹的兩個節點,使得父節點被自己的左孩子取代,而自己成為自己的右孩子;
就是通過變色與旋轉實現自平衡,太特麼。。。