【例】输出二叉树中的叶子节点
/* 先序遍历输出叶子节点 */
void PreOrderTraversal(BinTree BT)
{
if(BT){
if(!BT->Left&&!BT->Right) //如果没有左右儿子节点
printf("%d",BT->Data);
PreOrderTraversal(BT->Left);
PreOrderTraversal(Bt->Right);
}
}
【例】求二叉树高度
/* 求二叉树高度
Height=MAX(Hl,Hr)+1
后序遍历实现
递归 */
int PosOrderGetHeight(BinTree BT)
{
int HL,HR,MaxH;
if(BT){
HL=PosOrderGetHeight(BT->Left); //左子树高度
HR=PosOrderGetHeight(BT->Right); //右子树高度
MaxH=(HL>HR)?HL:HR;
return(MaxH+1);
}
else return 0;
}
网友评论