#include <iostream>
#include <stdio.h>
using namespace std;
typedef struct Biltreenode
{
char data;
struct Biltreenode *ltree, *rtree;
}Biltreenode, *Biltree;
void createtree(Biltree *T)
{
char c;
scanf("%c", &c);
if(c == ' ') //空格作为叶子节点
{
*T = NULL;
}
else
{
*T = (Biltreenode *)malloc(sizeof(Biltreenode));
(*T)->data = c;
createtree(&(*T)->ltree);
createtree(&(*T)->rtree);
}
}
void visit(int l, char c)
{
printf("%c 在第 %d 层\n", c, l);
}
void preordervisit(Biltree T, int level) //前序遍历方式
{
if(T)
{
visit(level, T->data);
preordervisit(T->ltree, level + 1);
preordervisit(T->rtree, level + 1);
}
}
int main()
{
int level = 1;
Biltree M;
M = NULL;
createtree(&M);
preordervisit(M, level);
system("pause");
return 0;
}
创建树时,在每个叶子节点处多输入2个空格作为结束符。
例如:输入如图所示的树,则在程序中需要输入AB0D00CE000(0表示空格),回车,就得到如下图的结果