數據結構樹--------B樹、B+ 樹、B- 樹、二叉樹的基本概念

一、樹

1. 什麼是樹

1. 樹是一種非線性的高級數據結構,在一些複雜的算法中都會用到樹這種數據結構。

2. 樹的定義: 樹是n 個節點的有限集。當 n = 0 時,被稱爲空樹。在任意一個非空樹中,有一下幾個特點:

  • 有且僅有一個特點的節點被稱爲根節點
  • 當 n  > 1 時,餘節點可分爲 m 個互不相交的有限集,每一個集合本身又是一個樹,稱爲根的子樹。

2. 樹相關的術語

1、樹結點:包含一個數據元素和若干個指向子樹的分支。
2、孩子結點:節點的子樹的根稱爲該結點的孩子。
3、雙親結點:B結點是A結點的孩子,則A結點是B結點的雙親。
4、兄弟結點:同一雙親節點的孩子結點。
5、堂兄結點:同一層上結點。
6、結點層次:根結點的層次爲1,根結點的孩子結點的層次爲2,以此類推。
7、樹的高(深)度:樹中最大的結點層。
8、結點的度:結點子樹的個數。
9、樹的度:樹中最大的結點度。
10、葉子結點:也是終端結點,是度爲0的結點。
11、分支結點:度不爲0的結點(非終端結點)。
12、森林:互不相交的樹集合。
13、有序樹:子樹有序的樹,如:家族樹。
14、無序樹:不考慮子樹的順序。

二、樹的分類

樹的主要分類

1. 二叉樹

  •  滿二叉樹: 除最後一層無任何子節點外,每一層上的所有節點都有兩個子節點,最後一層都是葉子節點
  • 完全二叉樹:設二叉樹的深度爲h,除第 h 層外,其它各層 (1~h-1) 的結點數都達到最大個數,第 h 層所有的結點都連續集中在最左邊,這就是完全二叉樹
  • 平衡二叉樹: 又被稱爲AVL樹,它是一顆空樹或左右兩個子樹的高度差的絕對值不超過 1,並且左右兩個子樹都是一棵平衡二叉樹。
  • 二叉搜索樹: 又稱二叉查找樹、二叉排序樹(Binary Sort Tree)
  • 紅黑樹 : 是每個節點都帶有顏色屬性(顏色爲紅色或黑色)的自平衡二叉查找樹

2. B樹:平常所說的B-樹,B-Tree 就是B樹。它同時也是一種自平衡的樹,它是一種多路搜索樹(並不是二叉的),能夠保證數據有序。同時它還保證了在查找、插入、刪除等操作時性能都能保持在O(logn),爲大塊數據的讀寫操作做了優化,同時它也可以用來描述外部存儲(支持對保存在磁盤或者網絡上的符號表進行外部查找)

3. B+ 樹: 在B樹的基礎上進行了改進,將分支變多,層數減少。層數變少就實現了IO次數的減少;葉子節點做了指針的連接,快速實現整顆數的遍歷。所以對於數據庫等磁盤查找的場景非常適合。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章