#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
typedef struct node{
char data;
struct node* lchild;
struct node* rchild;
}BTNode;
BTNode* Create()
{
BTNode* root=NULL;
char data;
scanf("%c", &data);
if(data != '#')
{
root = (BTNode*)malloc(sizeof(BTNode));
root->data = data;
root->lchild = Create();
root->rchild = Create();
}
return root;
}
//先根遍历,根左右
void PreOrder(BTNode* b)
{
if (b != NULL)
{
printf("%c", b->data);
PreOrder(b->lchild);
PreOrder(b->rchild);
}
}
//中根遍历,左根右
void InOrder(BTNode* b)
{
if (b != NULL)
{
InOrder(b->lchild);
printf("%c", b->data);
InOrder(b->rchild);
}
}
//后根遍历,左右根
void PostOrder(BTNode* b)
{
if (b != NULL)
{
PostOrder(b->lchild);
PostOrder(b->rchild);
printf("%c", b->data);
}
}
int main()
{
BTNode* root;
root=Create();
PreOrder(root);
printf("\n");
InOrder(root);
printf("\n");
PostOrder(root);
printf("\n");
return 0;
}
下面是运行代码