1.陣列需要在記憶體中需要申請連續的記憶體空間。
2.陣列可以通過下標的方式進行資料的獲取,所以陣列的查詢效率更快
3.增刪效率差,需要動態的擴容或者更改內容資料的複製
1.記憶體空間靈活,不需要連續的空間。
2.增刪效率高只需要修改相連的兩個節點的位址即可
3.查詢效率低,不支援下標的訪問方式,支援順序遍歷的方式。
1.只有乙個根節點
2.每個節點最多有兩個子節點
3.該節點的左節點資料比他小,右節點的資料比該節點的資料大。
4.如果對映在一條軸上該資料是順序排列的。
優點:1.優化了陣列的插入,效能更高,但是查詢的效率沒有資料高,還是需要從根節點乙個個比較財貨i查詢到具體的資料
2.優化了鍊錶的查詢的效率,使用樹可以降低查詢的深度,減少查詢的次數
3.所以樹是在陣列和鍊錶的一種折中的方式,在不同的使用場景中可以結合具體的業務場景來選擇具體的資料儲存結構。
紅黑樹是一種自平衡的二叉樹,不是絕對平衡的。滿足以下規則:
1.根節點是黑色
2.每個節點要麼是黑色要麼是紅色。
3.葉子節點是nul的黑色節點
4.紅色節點的字節點和父節點必須是黑色節點。
5.從任意的節點到葉子節點的黑色節點數量是一致的,所以又叫黑色平衡二叉樹
平衡二叉樹是在在二叉樹的基礎上進行的改良版。因為如果插入的資料是順序的就會變成一可斜樹,那麼和鍊錶的效能是一樣的。
平衡二叉樹原理:所有子節點的深度差最大不超過1,這樣可以降低樹的深度,便於查詢的效能。
應為平衡二叉樹每個節點只儲存當前節點的資料和左右子節點的位址,所以一旦資料量大起來樹的深度愛是很多會影響查詢的效率問題。所以有了b+樹,每個節點可以稱之為頁(磁碟中資料儲存的基本單位),每頁有16k的大小,每個節點可以查詢多個資料再養就會有很多的分支變成多路,這樣就又可以降低樹的深度,增加查詢的效率問題
陣列特性之我見 陣列的鍊錶特性
定義乙個簡單的五維整型陣列 int ppppp 2 2 2 2 2 如右圖所示 我在此處形象的用帶有 位址 和 名字 兩個屬性的 坑 來表示變數,我說陣列就是乙個 大坑 這個 大坑 裡有層次的巢狀著一些 小坑 而這些 小坑 和 大坑 之間是像鍊錶一樣,一環套一環的 以上述5維陣列為例,從最小的 坑 ...
表 陣列 鍊錶
陣列 陣列是個表,是個連續儲存的表。在c裡面,首先我們知道陣列容量是固定的,使用前先分配大小,所以使用後就不是很方便調整容量 解決這個問題在c裡面一般是預先估計陣列的大小,然後用雙倍的容量建立陣列,是不是很麻煩?正因為陣列是連續儲存和容量固定,所以注定陣列不方便進行增刪這種改變容量的操作。原因是假如...
鍊錶與樹 環形鍊錶
給定乙個鍊錶,返回鍊錶開始入環的第乙個節點。如果鍊錶無環,則返回 null。為了表示給定鍊錶中的環,我們使用整數 pos 來表示鍊錶尾連線到鍊錶中的位置 索引從 0 開始 如果 pos 是 1,則在該鍊錶中沒有環。說明 不允許修改給定的鍊錶。示例 1 輸入 head 3,2,0,4 pos 1 輸出...