① 1.編寫遞歸演算法,計算二叉樹中葉子結點的數目
int BtreeDepth(BiTNode *BT){//求二叉樹的深度
if (BT==NULL)//空樹則返回0
return 0;
else{
int dep1=BtreeDepth(BT->lchild );//遞歸調用逐層分析
int dep2=BtreeDepth(BT->rchild );
if(dep1>dep2)
return dep1+1;
else
return dep2+1;
}
}
int Leave(BiTNode *BT){//求二叉樹中的葉子節點數
if (BT==NULL)
return 0;
else{
if(BT->lchild ==NULL && BT->rchild ==NULL)
return 1;
else
return(Leave(BT->lchild )+Leave(BT->rchild ));
}
}
這是學數據結構時做的練習,用的是遞歸的形式,理解時需稍稍的想一下,但是函數這樣寫起來會相對比較的簡單。