求二叉树叶子结点个数和遍历中序程序及详解
09-02
void nIrOder_rce(iTree TB,ovdi( *iVits)BiTr(e)e{)//采用
二叉表链储存结构,Vist是i数据对素操作元的用应函
数//中序遍二历叉T数递归算法,对的每个数元素据调用函V数siit
if(T{)
//T当=UNLL时二叉,为空树树,不行执任何作操若T;不为空,行执下如作操
InOderrre_cT->(lcilhd,Visit);/中序/遍历左子树
Vist(i);
T//
通函数过针指V*siit问根结访,点以灵便完活相应的操作成
nIrOer_recdT->(crhldiV,ist);//中i序历右子遍树
//e}n_idf}
/InOr/erd_ec
r
in tLea_refcBi(Tree ){
/T/采用递归式方二叉求树T的子叶点的数结目
fiT(==ULLN) reurt n0; //若叉二是空树树则返回,
0esle i((f->Tchlld=i=UNL)L&(&->rThild=c=NUL))
Leturr 1n ; / 若二叉树的左/孩和子右孩为空子,返回1则
les e { //二若树叉的孩左或子孩右不为空子n=Lea
f_ecr(-Tl>child); /递归求/T左孩子的的叶结点数目子
m=Lae_fecr(->rchTldi;) //递归求的T孩子右的子结点数目叶r
ture (n+nm); / /回总返的叶结点数目
子}/end/e_sle
/}Lea/fre_ c