先序递归创建二叉树,并对其进行 先序、中序、后序遍历
1.建立二叉树
2.为了直观的输出树,那么可以选择广度遍历。查查书应该有。
3.深度的话我这刚好有两个函数
#include
typedef struct{
char data;
}TElemType;
typedef struct BiTNode{
TElemType data;
struct BiTNode *lchild;
struct BiTNode *rchild;
}BiTNode, *BiTree;
void CreateBiTree(BiTree &T)
{
char ch;
TElemType elem;
printf("请输入树节点, 空树以#代替:");
scanf("\n%c", &ch);
elem.data = ch;
if(ch == '#')
{
T = NULL;
}
else
{
T = (BiTNode * )malloc(sizeof(BiTNode));
if(!T) exit(-1);
T->data = elem; //生成根
CreateBiTree(T->lchild);//构造左子树
CreateBiTree(T->rchild);// 构造右子树
}
}
void main()
{
BiTree T;
CreateBiTree(T);
} |