程序要求及提示:
(1)从键盘输入扩展的先序结点数据,建立二叉树。
(2)层次遍历,输出结点序列。
(3)统计分支结点个数。。
(4)要求程序通过一个主菜单进行控制,通过选择菜单项序号调用各功能函数。
代码如下:
#include<stdio.h>
#include<stdlib.h>
typedef struct BiTNode
{
char data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
void createbitree(BiTree *T)//先序遍历建立二叉树
{
char ch;
scanf("%c",&ch);
if(ch=='#')
*T=NULL;
else
{
*T=(BiTree)malloc(sizeof(BiTNode));
(*T)->data=ch;
createbitree(&((*T)->lchild));
createbitree(&((*T)->rchild));
}
}
void PreOrderTraverse(BiTree T)//先序遍历并打印二叉树元素
{
if(T!=NULL)
{
printf("%c",T->data);
PreOrderTra