資料結構 二叉樹

2021-09-08 01:12:20 字數 1641 閱讀 1896

二叉樹是樹的特殊一種,具有如下特點:

每個結點最多有兩顆子樹,結點的度最大為2。

左子樹和右子樹是有順序的,次序不能顛倒。

即使某結點只有乙個子樹,也要區分左右子樹。

節點的度:乙個節點含有的子樹的個數稱為該節點的度;

葉節點或終端節點:度為零的節點;

非終端節點或分支節點:度不為零的節點;

父親節點或父節點:若乙個節點含有子節點,則這個節點稱為其子節點的父節點;

兄弟節點:具有相同父節點的節點互稱為兄弟節點;

節點的層次:從根開始定義起,根為第1層,根的子節點為第2層,以此類推;

樹的高度或深度:樹中節點的最大層次;

堂兄弟節點:父節點在同一層的節點互為堂兄弟;

節點的祖先:從根到該節點所經分支上的所有節點;

孫:以某節點為根的子樹中任一節點都稱為該節點的子孫。

森林:由m(m>=0)棵互不相交的樹的集合稱為森林;

滿二叉樹:一棵深度為k,且有2^k-1 (2的k次方減一)個節點稱之為滿二叉樹

完全二叉樹:完全二叉樹是由滿二叉樹而引出來的。對於深度為k的,有n個結點的二叉樹,當且僅當其每乙個結點都與深度為k的滿二叉樹中編號從1至n的結點一一對應時稱之為完全二叉樹。通俗來講若設二叉樹的深度為h,除第 h 層外,其它各層 (1~h-1) 的結點數都達到最大個數,第 h 層所有的結點都連續集中在最左邊,這就是完全二叉樹。如下圖:左邊為完全二叉樹,右邊為非完全二叉樹。

1.在非空二叉樹中,第i層的結點總數不超過2^(i-1),i>=1;

2.深度為h的二叉樹最多有2^h-1個結點(h>=1),最少有h個結點;

3.對於任意一棵二叉樹,如果其葉結點數為n0,而度數為2的結點總數為n2,則n0=n2+1;

4.具有n個結點的完全二叉樹的深度為k =[log2n」+1(取下整數)

5.有n個結點的完全二叉樹各結點如果用順序方式儲存,則結點之間有如下關係: 若i為結點編號則 如果i>1,則其父結點的編號為i/2;

6.完全二叉樹,如果2i<=n,則其左兒子(即左子樹的根結點)的編號為2i;若2i>n,則無左兒子; 如果2i+1<=n,則其右兒子的結點編號為2i+1;若2i+1>n,則無右兒子。

7.給定n個節點,能構成h(n)種不同的二叉樹。h(n)為卡特蘭數的第n項。h(n)=c(2*n,n)/(n+1)。

8.設有i個枝點,i為所有枝點的道路長度總和,j為葉的道路長度總和j=i+2i

二叉樹的遍歷有三種方式,如下:

(1)前序遍歷(dlr),首先訪問根結點,然後遍歷左子樹,最後遍歷右子樹。簡記根-左-右。

(2)中序遍歷(ldr),首先遍歷左子樹,然後訪問根結點,最後遍歷右子樹。簡記左-根-右。

(3)後序遍歷(lrd),首先遍歷左子樹,然後遍歷右子樹,最後訪問根結點。簡記左-右-根。

資料結構 二叉樹 反轉二叉樹

include using namespace std define maxsize 1000 struct binary tree node class queue queue queue void queue push binary tree node btn binary tree node ...

《資料結構》 二叉樹

二叉樹 是 n個結點的有限集,它或為空集,或由乙個根結點及兩棵互不相交的 分別稱為該根的左子樹和右子樹的二叉樹組成。二叉樹不是樹的特殊情況,這是兩種不同的資料結構 它與無序樹和度為 2的有序樹不同。二叉樹的性質 1 二叉樹第 i層上的結點數最多為 2 i 1 2 深度為 k的二叉樹至多有 2 k 1...

資料結構 二叉樹

1.二叉樹 二叉樹是一種特殊結構的樹,每個節點中最多有兩個子節點,如圖1所示 圖1 二叉樹 在圖1中的二叉樹裡,a c有兩個子節點,b d有乙個子節點。對於二叉樹還有圖2中的以下情況 圖2 二叉樹的特殊情況 在博文中還介紹了滿二叉樹和完全二叉樹還有其他的特殊二叉樹。2.二叉樹的實現 有兩種實現方式,...