5、
cout<<"叶子数"<>ch;
if (ch=='#')
{
bt=NULL;
}else{
bt=new BiNode;
bt->
6、data=ch;
bt->lchild=Creat(bt->lchild);//递归建立左子树
bt->rchild=Creat(bt->rchild);//递归建立右子树
}
return bt;
}
void Release(BiNode *bt)//析构函数调用
{
if (bt!=NULL)
{
Release(bt->lchild);
Release(bt->rchild);
delete bt;
}
}
void PreOrder(BiNode *bt)//前序(DLR)
{
if
7、bt==NULL){return;}
else{
cout<data<<" ";
PreOrder(bt->lchild);
PreOrder(bt->rchild);
}
}
void InOrder(BiNode *bt)//中序(LDR)
{
if(bt==NULL){return;}
else{
InOrder(bt->lchild);
cout<data<<" ";
InOrder(bt->rchild);
}
}
void PostOrder(BiNode
8、 *bt)//后序(LRD)
{
if(bt==NULL){return;}
else{
PostOrder(bt->lchild);
PostOrder(bt->rchild);
cout<data<<" ";
}
}
void Count(BiNode *bt,int &nCount,int &lCount)//计算叶子数和结点数(即求二叉树的所有结点中左、右子树均为不为空的结点个数之和)
{
if (bt!=NULL)
{
if (bt->lchild==NULL&&bt->rchild==NUL
9、L)
{
lCount++;
return;
}else
{
nCount++;
}
Count(bt->lchild,nCount,lCount);
Count(bt->rchild,nCount,lCount);
}
}
};
int main()
{
BiTree a;
int index;
do
{
cout<<"**********************************"<10、<<"2、中序遍历二叉树"<>index;
if(index==5){return 0;}
switch(index)
{
case 1:
a.PreOrder();
cout<<"遍历完成"<11、a.InOrder();
cout<<"遍历完成"<