以二叉链表作存储结构,建立一棵二叉树。 输出该二叉树的中序遍历序列,求出该二叉树的深度,并统计其叶子结点数。
二叉链表的类型描述
typedef char ElemType;
typedef struct BiNode
{ ElemType data;
struct BiNode *lchild,*rchild;
}BiNode,*BiTree;
下面给出了 二叉树遍历 函数的大部分内容,但缺少了一部分(以下划线____
标识出来的部分)。
请先将以下代码中画横线的部分补充完整,然后将完整的函数InOrder
,CountLeaf
,Depth
提交系统,完成题目要求的功能。
函数接口定义:
void InOrder(BiTree T)
{
if (T)
{
InOrder( ____ );
cout<< ____ ;
InOrder( ____ );
}
}
// 统计叶子节点数
// 叶子节点个数通过参数 n 返回
void CountLeaf(BiTree T, int &n)
{
if (T)
{
if ( ____ ) n++;
CountLeaf( ____ , n);
CountLeaf( ____ , n);
}
}
// 计算二叉树高度
// 高度通过 dep 返回
void Depth(BiTree T, int &dep)
{
int dl,dr;
if ( __