(資料結構)二叉查詢樹

2021-09-02 23:26:39 字數 2023 閱讀 1296

,是一種資料結構。它是由n個有限節點組成乙個具有層次關係的集合。

特點

樹的基本術語

節點的度:節點擁有的子樹的數目。

葉子:度為零的節點。

分支節點:度不為零的節點。

樹的度:樹中節點的最大的度。

層次:根節點的層次為1,其餘節點的層次等於該節點的雙親的層次加1。

樹的高度:樹中節點的最大層次。

無序樹:如果樹中節點的各子樹之間的次序是不重要的,可以交換位置。

有序樹:如果樹中節點的各子樹之間的次序是重要的,不可以交換位置。

二叉樹,二叉樹是每個節點最多有兩個子樹的樹結構。所以二叉樹可以有五種基本形態:如圖

二叉樹的性質

二叉樹第i層上的節點數目最多為2^(i-1)。    證明:當i=1時,第一層! 2^0=1,第一層只有乙個根節點,所以成立。

當i>1時,節點數目最多2^(i-1)。

深度為k的二叉樹節點數目至多有2^k-1。   

包含n個節點的二叉樹的高度至少為log2(n+1)。

在任意乙個二叉樹中,若終端節點的個數為n0,度為2的節點數為n2,則n0=n2+1.

滿二叉樹,完全二叉樹和二叉查詢樹

1.滿二叉樹

定義:高度為h,並且有2^h-1個節點的二叉樹,叫做滿二叉樹。

2.完全二叉樹

特點:葉子只能出現在最下層和次下層,且最下層的葉子節點集中在樹的左部。

顯然一棵滿二叉樹一定是完全二叉樹,但是乙個完全二叉樹不一定是滿二叉樹。

3.二叉查詢樹

定義:二叉查詢樹又稱為二叉搜尋樹。設x為二叉查詢樹的乙個節點,x節點包含關鍵字key,節點x的key值叫做key[x]。如果y是x的左子樹中的乙個節點,則key[y]key[x]。

特點:若任意節點的左子樹不空,則左子樹上所有節點的值均小於它的根節點的值。

若任意節點的右子樹不空,則右子樹上所有節點的值均大於它的根節點的值。

任意節點的左、右子樹,也分別是二叉查詢樹。

沒有鍵值相等的節點。

遍歷

前序遍歷

訪問根節點

先序遍歷左子樹

先序遍歷右子樹

中序遍歷

中序遍歷左子樹

訪問根節點

中序遍歷右子樹

後序遍歷

後序遍歷左子樹

後序遍歷右子樹

訪問根節點

前序遍歷結果:3 1 2 5 4 6

中序遍歷結果:1 2 3 4 5 6

後序遍歷結果:1 2 4 6 5 3

前驅和後繼:

節點的前驅是該節點的左子樹中最大的節點

節點的後繼是該節點的右子樹中最小的節點

資料結構 二叉查詢樹

使二叉樹成為二叉查詢樹的性質是,對於樹中的每個節點x,它的左子樹中所有關鍵字值小於x的關鍵字值,而它的右子樹中所有關鍵字值大於x的關鍵字值。這意味著,該樹所有的元素以某種統一的方式排序。二叉查詢樹是一棵特殊的二叉樹,二叉查詢樹中節點的結構與二叉樹種節點的結構相同,關鍵在於可以在二叉查詢樹上可以執行的...

資料結構 樹 二叉查詢樹

wiki 首先是名稱 二叉查詢樹英文叫binary search tree,這個在很多演算法題目中很常見所以要記住,特別是英文題目中。也叫做二叉排序樹,二叉搜尋樹等等。具體的定義比較官方,用自己的話說,首先它肯定是二叉樹,其次,當前節點的左子葉元素值比當前節點小,右子葉元素值比當前節點大,所以節點均...

資料結構之二叉查詢樹

針對二叉查詢樹的操作 增刪改查 的時間和樹的高度成正比,比如都有10個節點的乙個樹,樹高為4和樹高為10的操作時間肯定是不同的,這個時間實際上是o lgn 二叉查詢樹的期望的樹高是lgn,從而基本動態集合的操作平均時間為 lgn 通常二叉查詢樹基於鍊錶實現,每個節點儲存左,右子節點,如果想更方便的實...