二叉樹(shù)的高度定義 二叉樹(shù)求葉子結(jié)點(diǎn)個(gè)數(shù)的算法(遞歸遍歷)?
二叉樹(shù)求葉子結(jié)點(diǎn)個(gè)數(shù)的算法(遞歸遍歷)?Int BTREE depth(BT->lchild){//find the depth of binary tree if(BT==null)//empt
二叉樹(shù)求葉子結(jié)點(diǎn)個(gè)數(shù)的算法(遞歸遍歷)?
Int BTREE depth(BT->lchild){//find the depth of binary tree if(BT==null)//empty tree returns 0return 0else{Int dep1=BTREE depth(BT->lchild)//遞歸調(diào)用逐層分析Int dep2=BTREE depth(BT->rchild)if(dep1>dep2)return dep2 1}}Int leave(bitnode*BT){//find二叉樹(shù)中的葉節(jié)點(diǎn)數(shù)if(BT==null)返回0else{if(BT->lchild==null)&這是學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的練習(xí)。它使用遞歸形式。理解的時(shí)候需要考慮一下,但是函數(shù)相對(duì)簡(jiǎn)單。
若用二叉鏈表作為二叉樹(shù)的存儲(chǔ)表示,試用編寫遞歸算法,統(tǒng)計(jì)二叉樹(shù)中葉子結(jié)點(diǎn)的個(gè)數(shù)?
Int count(node*root){if(!Root)return 0 int return=count(Root->leftchild)count(Root->rightchild)return==0?1:return}第一行:Null指針?lè)祷?第二行:統(tǒng)計(jì)左右子樹(shù)的葉節(jié)點(diǎn)數(shù)第三行:如果左右子樹(shù)的葉節(jié)點(diǎn)數(shù)為0,則為葉節(jié)點(diǎn),返回1;否則返回左右子樹(shù)的葉節(jié)點(diǎn)數(shù)。