★二叉樹的性質:
性質1:在二叉樹的第i層上至多有2i-1個結點
性質2:深度為k的二叉樹至多有2k-1個結點(k>=1)
性質3:對任何一棵二叉樹t,如果其葉子結點數為n0,度為2的結點數為n2,則n0=n2+1
性質4:具有n個結點的完全二叉樹的深度為「log2n」+1
性質5:如果對一棵有n個結點的完全二叉樹(其深度為「log2n」+1)的結點按層序編號(從第1層到第「log2n」+1層,每層從左到右),則對任一結點i(1≤i≤n),有
①如果i=1,則結點i是二叉樹的根,無雙親;如果i>1,則其雙親parent(i)是結點「i/2」
②如果2i>n,則結點n無左孩子(結點i為葉子結點);否則其左孩子lchild(i)是結點2i
③如果2i+1>n,則結點i無右孩子,否則其右孩子rchild(i)是結點2i+1
先序遍歷:根→左→右;中序遍歷:左→中→右;後序遍歷:左→右→中;
★類別:
滿二叉樹:深度為k的二叉樹有2k-1個結點,則稱其為滿二叉樹。
完全二叉樹:對滿二叉樹進行編號,從根開始,自上而下,自左至右,如果乙個二叉樹的編號與之對應(存在的一樣),則稱這個二叉樹為完全二叉樹。
線索二叉樹:用來儲存遍歷的動態過程當中得到的訊息。
最優二叉樹:指樹的帶權路徑長度最短的二叉樹排列,基於貪心策略;用於哈夫曼編碼,不等長編碼;多用於多**壓縮技術,屬於無失真壓縮;有n個權值時會有(2n-1)個結點。
權值代表了某個字元出現的概率,先選兩個最小的組,二者和作為新結點取代前兩個,然後重複上面的步驟。
最小生成樹:權值最小的生成樹,就叫做最小生成樹;
①普里姆演算法:選結點,與之相連的最小權值的邊,不可出現迴路;
②克魯斯卡爾演算法:選連線。
aov網(拓撲排序):
①在aov網中選擇乙個入度為0(沒有前驅)的頂點且輸出它;
②在網中刪除該頂點及其與該頂點有關的所有股;
③重複上述兩步,直到網中不存在入度為0的頂點為止。
折半查詢判定樹:以當前查詢區間的中間位置序號作為根,左半個子表和右半個子表中的記錄序號分別作為根的左子樹和右子樹的結點,這樣構造的二叉樹就叫做折半查詢判定樹。
二叉排序樹(二叉查詢樹):可以是空樹,非空時滿足:
①若左子樹非空,則左子樹上所有結點的值均小於根結點的值
②若右子樹非空,則右子樹上所有結點的值均大於根結點的值
特點:中序遞增;同層,從左至右任然遞增。
平衡二叉樹:左右子樹的高度之差的絕對值≤1,並且左右子樹任是平衡二叉樹。
資料結構 二叉樹 反轉二叉樹
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.二叉樹的實現 有兩種實現方式,...