順序存儲:使用一片連續的邏輯地址存放數據
鏈式存儲:不用連續地址,使用指針指向下個元素的地址html
BST 是一種樹,他的特性是
1.左子樹上全部結點的值均小於或等於它的根結點的值。
2.右子樹上全部結點的值均大於或等於它的根結點的值。
3.左、右子樹也分別爲BSTnode
這個時候咱們就有新的樹來解決他的缺點就是(AVL Tree)數組
AVL樹,本質上是帶了平衡功能的BST,他多了個平衡因子概念
即(每一個結點的左右子樹的高度之差的絕對值(平衡因子)最多爲1),若是不知足就會旋轉來知足這個條件。
上面圖一BST 在avl中旋轉操做後獲得以下,具體怎麼旋轉的能夠在這個網站本身模擬
https://www.cs.usfca.edu/~gal...
那麼AVL 有沒有什麼缺點呢?
最大的缺點就是追求完美的平衡致使插入和刪除須要大量的平衡計算,這個在插入和刪除大的狀況致使開銷較大,這個時候咱們就想着,有沒有一種樹,解決BST的缺點,同時又不要大量的計算平衡,因而RB-Tree就被髮明瞭數據結構
刪除node引發樹的不平衡時,最壞狀況下,AVL須要維護從被刪node到root這條路徑上全部node的平衡性,而RB-Tree最多隻需3次旋轉。網站
下圖是解決圖一不平衡RB-Tree的圖
spa