資料結構 考研筆記(二) 二叉樹的應用

2021-10-24 06:24:47 字數 1445 閱讀 9437

// 計算二叉樹所有結點數

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...