#include<stdio.h>/*头文件*/
#include<stdlib.h>
//定义二叉树结构体
typedef struct BiTNode
{
char data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
void PreOrderTraverse(BiTree T)//二叉树的先序遍历
{
if(T==NULL)
return ;
printf("%c ",T->data);
PreOrderTraverse(T->lchild);
PreOrderTraverse(T->rchild);
}
//建立二叉树(按先序方式输入)
void CreateBiTree(BiTree *T)
{
char ch;
scanf("%c",&ch);
if(ch=='0')/*输入0表示空节点*/
*T=NULL;
else
{
*T=(BiTree )malloc(sizeof(BiTNode));
if(!*T)
exit(-1);
(*T)->data=ch;
CreateBiTree(&(*T)->lchild);
CreateBiTree(&(*T)->rchild);
}
}
//主函数
int main()
{
BiTree T;
CreateBiTree(&T);
PreOrderTraverse (T);
return 0;
}