#include <stdio.h>
#include <stdlib.h>
typedef struct BiTNode
{
char data;
struct BiTNode *lchild, *rchild;
} BiTNode, *BiTree;
// 创建一颗二叉树, 约定用户遵照前序遍历的方式输入数据
CreateBiTree(BiTree *T)
{
char c;
scanf("%c", &c);
if (' '==c)
{
*T = NULL;
}
else
{
*T = (BiTNode *)malloc(sizeof(BiTNode));
(*T)->data = c;
CreateBiTree (&(*T)->lchild);
CreateBiTree (&(*T)->rchild);
}
}
//访问二叉树节点的具体操作
visit(char c, int level)
{
printf("%c is in %d level\n", c, level);
}
// 遍历二叉树
PreOrderTraverse(BiTree T, int level)
{
if (T)
{
visit(T->data,level);
PreOrderTraverse(T->lchild,level+1);
PreOrderTraverse(T->rchild,level+1);
}
}
int main()
{
int level = 1;
BiTree T = NULL;
CreateBiTree(&T);
PreOrderTraverse(T,level);
}