一.二叉樹的刪除
刪除二叉樹的乙個結點要分為三種情況去處理:
(1)該結點是乙個葉子結點
處理辦法:其雙親結點的相應指標域的值改為null
(2)該結點只有左子樹或者右子樹
處理辦法:其雙親結點指標域的值改為「指向被刪除結點的左子樹或右子樹」
(3)該結點既有左子樹又有右子樹
處理辦法:用這個結點的前驅替換這個結點,然後刪去前驅結點
二.二叉樹的重要性質
性質1 在二叉樹的第i層上至多有2^(i-1)個結點
性質2 深度為k的二叉樹至多有2^k-1個結點
性質3 任意一棵二叉樹的葉子結點樹=度為2的結點數+1
性質4 具有n個結點的完全二叉樹的深度為log2n向下取整 +1
性質5 對於具有n個結點的完全二叉樹,如果按照滿二叉樹結點進行連續編號的方式,對所有結點從1開始順序編號,則對於任意序號為i的結點有:
①如果i=1,則結點i為根,其無雙親結點;如果i>1,則結點i的雙親結點序號為i/2向下取整。
②如果2i③如果2i+1<=n,則結點i的右孩子結點序號為2i+1,否則,結點i無右孩子
三.平衡二叉樹
平衡二叉樹就是在二叉排序樹的基礎上要調整左右子樹的高度差不能大於1,這個不容易描述清楚,我結合一道題目來說明:
分析求解過程如圖:
二叉樹24 重建二叉樹
題目 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。思路 已知一棵樹的先序遍歷的結果陣列和中序遍歷的結果,要求據此重建一棵二叉樹,即重建所有結點並設定結點之間的指標關係,最後返回...
二叉樹 2255 重建二叉樹
總時間限制 1000ms 記憶體限制 65536kb 描述給定一棵二叉樹的前序遍歷和中序遍歷的結果,求其後序遍歷。輸入輸入可能有多組,以eof結束。每組輸入包含兩個字串,分別為樹的前序遍歷和中序遍歷。每個字串中只包含大寫字母且互不重複。輸出對於每組輸入,用一行來輸出它後序遍歷結果。樣例輸入 dbac...
二叉樹問題總結(三)
問題11 求二叉樹的映象 遞迴解法 1 如果二叉樹為空,返回空 2 如果二叉樹非空,分別求左子樹和右子樹的映象,然後交換左右子樹 binarytreenode mirror binarytreenode proot 問題12 求二叉樹中兩個節點的最低公共祖先 遞迴解法 1 如果兩個節點分別在左子樹和...