資料結構 樹與二叉樹的應用

2021-09-26 23:36:45 字數 1550 閱讀 5571

若二叉排序樹非空,則將給定值與根結點的關鍵字比較,若相等則查詢成功;若不等,則當根結點的關鍵字的值大於給定關鍵字時,在根結點的左子樹中查詢,小於時在右子樹中查詢。

若二叉樹為空,直接插入;若關鍵字小於根結點,則插入左子樹;若關鍵字大於根結點,則插入右子樹;否則不必插入。

依次輸入資料,並將他們插入二叉排序樹中適當的位置上。

刪除情況按照三種情況來處理:

1.當要刪除的結點是葉子結點時,直接刪除

2.當要刪除的結點只有乙個孩子時,讓刪除結點的孩子替代該結點

3.當刪除的結點有兩個孩子結點時,令刪除結點的直接後繼(右子樹中序遍歷的第乙個結點)來代替刪除節點,然後從二叉樹中刪除這個直接後繼(用1或者2的方法)即可。

平衡二叉樹是指任意結點的左子樹和右子樹的平衡因子的差值不大於1。

平衡因子,結點左子樹與右子樹高度之差。

ll平衡旋轉(右單旋轉):在a的左子樹(l)的左子樹(l)上插入了結點,a的平衡因子由1增到2,b由0增至1。將a的左子樹b替代a,b的右子樹作為a的左子樹。

rr平衡旋轉(左旋轉):在a的右子樹(r)的右子樹(r)上增加結點,a的平衡因子增到2,b的平衡因子由0減為-1。將a的右子樹b替代a,b的左子樹變為a的右子樹。

lr平衡旋轉(左右旋轉):在a的左子樹的右子樹上插入新的結點,a的平衡因子由1增長為2,需要兩次旋轉。

rl平衡旋轉(右左旋轉)

如圖所示 tn=t(n-1)+t(n-2)+1

樹中的結點常常被賦予乙個數值,這個數值乘以從根結點到本結點的路徑長度,得到帶權路徑長度wpl,wpl最小的為哈夫曼樹。

1.先找到所有序列中的最小的兩個結點

2.將他們作為左右子樹組合成一棵樹,根的值為兩個數之和,作為接下來的比較值

3.重複1和2,直到只剩下一棵樹

不存在度為1的結點

資料結構 樹與二叉樹

一 性質 1 在二叉樹中,第i層的結點總數不超過2 i 1 2 深度為h的二叉樹最多有2 h 1個結點 h 1 最少有h個結點 3 對於任意一棵二叉樹,如果其葉結點數為n0,而度數為2的結點總數為n2,則n0 n2 1 4 具有n個結點的完全二叉樹的深度為int log2n 1 5 給定n個節點,能...

資料結構 樹與二叉樹

1 樹的定義 樹是一種 非線性的資料結構。樹是n n 0 個結點的有限集,在任意一棵非空樹中 1 有且僅有乙個特定的被稱為 根 root 的結點 2 當n 1時,其餘結點可分為m m 0 個互不相交的有限集,其中每個集合本身又是一棵樹,並且稱為根的 子樹 subtree 3 每棵子樹也是由唯一的根結...

資料結構 樹與二叉樹

樹是一類重要的非線性資料結構,是以分支關係定義的層次結構 定義 樹 tree 是n n 0 個結點的有限集t,其中 有且僅有乙個特定的結點,稱為樹的根 root 當n 1時,其餘結點可分為m m 0 個互不相交的有限集t1,t2,tm,其中每乙個集合本身又是一棵樹,稱為根的子樹 subtree 特點...