#include <stdio.h>
#include <stdlib.h>
typedef char Element;
typedef struct BiTNdoe
{
Element date;
BiTNdoe* lchild;
BiTNdoe* rchild;
}BiTNdoe,*BiTree;
//创建二叉树
void CreateBiTree(BiTree* T)
{
Element c;
scanf("%c",&c);
if(' '==c)
{
(*T)=NULL;
}
else
{
(*T)=(BiTNdoe*)malloc(sizeof(BiTNdoe));
(*T)->date=c;
CreateBiTree(&(*T)->lchild); //递归创建左子树
CreateBiTree(&(*T)->rchild); //递归创建右子树
}
}
//具体的访问细节
void Visit(Element date,int leve)
{
printf("%c 在第 %d 层 \n",date,leve);
}
//前序遍历
void preTraversal(BiTree T,int leve)
{
if(T)
{
Visit(T->date,leve);
preTraversal(T->lchild,leve+1); //前序遍历左子树
preTraversal(T->rchild,leve+1); //前序遍历右子树
}
}
int main()
{
int leve=1;
BiTree T=NULL;
printf("请按照前序遍历输入数据,空指针用空格代替!\n");
CreateBiTree(&T);
preTraversal(T,leve);
return 0;
}