// 計算二叉樹所有結點數
int n =0;
void
count
(btnode *p)
}// 計算葉結點數
int n =0;
void
count_0
(btnode *p)}//
// 利用右孩子指標連線葉結點
// 採用先序遍歷模板
void
link
(ntnode *p, btnode *
&head, btnode *
&tail)
else
}link
(p->lchild,head,tail)
;link
(p->rchild,head,tail);}
}// 輸出結點到根結點的路徑
// 增加乙個指向雙親的指標parent
// 定義新的資料結構
typedef
struct btnode
// 給parent賦值
void
tribtree
(btnode *p, btnode *q)
}// 列印路徑
void
printpath
(btnode *p)
}// 列印所有結點的路徑, 先序遍歷
void
allpath
(btnode *p)
}/// change(pre, l1+1, (l1+1+r1)/2, post, l2,(l2+r2-1)/2);
// 已知滿二叉樹的先序序列, 求後序序列
// 已知pre陣列,即先序序列
void
change
(char pre,
int l1,
int r1,
char post,
int l2,
int r2)}/
// 找出值為b的結點和層數
// 運用重要提示模板
int l=1;
void
leno
(btnode *p)}//
// 在中序線索二叉樹中,尋找結點t為根的子樹上的最後乙個結點
// 思路: 沿右子樹一直走下去,直到右指標為右線索
tbtnode*
inlast
(tbtnode *t)
return p;
}// 找中序前驅
tbtnode*
inprior
(tbtnode *t)
retunr p;
}// 找前序後繼(注意,仍然是中序線索二叉樹)
// 思路列舉所有情況
tbtnode*
trenext
(tbtnode *t)
return p;
}
資料結構與演算法 樹的應用 二 二叉樹遍歷
題目描述 輸入 兩個字串,其長度n均小於等於26。第一行為前序遍歷,第二行為中序遍歷。二叉樹中的結點名稱以大寫字母表示 最多26個結點 輸出 輸入樣例可能有多組,對於每組測試樣例,輸出一行,為後序遍歷的字串。樣例輸入 abc bacfdxeag xdefag 樣例輸出 bca xedgaf 演算法分...
資料結構 二叉樹 二 二叉樹的性質
滿二叉樹是每層的節點個數都達到了最多的二叉樹,如下圖所示 完全二叉樹是節點的編號順序與滿二叉樹一致,但最後一層的節點可能會在末尾連續得少一些,如下圖所示 從上往下數,第i層上最多有2 i 1 個節點。深度為k得二叉樹至多有2 k 1個節點 對任意一顆二叉樹,其終端節點 葉子節點 數為n0,度為2的節...
Java資料結構(二)二叉查詢樹
二叉查詢樹是二叉樹的一種,但它要求乙個節點的左子節點小於該節點,右子節點大於該節點,因此二叉查詢樹里儲存的值必須是可比較的。以下是一些暴露的public方法,大多數都呼叫私有方法實現。另外還有乙個隱藏的巢狀節點類。public class binarysearchtree private binar...