#include "tree_nod.h"
//创建结点
tree_p create_node(char data)
{
tree_p new=(tree_p)malloc(sizeof(tree));
new->data=data;
return new;
}
//创建二叉树(创建结点,再创建结点的左右子树)
tree_p create_tree()
{
char data ='\0';
scanf("%c",&data);
getchar();
if(data=='#')
{
return NULL;
}
tree_p T=create_node(data);
T->lchild=create_tree();
T->rchild=create_tree();
}
//先序遍历
void pri(tree_p T)
{
if(T==NULL)
{
return;
}
printf("%c\n",T->data);
pri(T->lchild);
pri(T->rchild);
}
//中序遍历
void pri_zhong(tree_p T)
{
if(T==NULL)
{
return;
}
pri_zhong(T->lchild);
printf("%c\n",T->data);
pri_zhong(T->rchild);
}
//后序遍历
void pri_hou(tree_p T)
{
if(T==NULL)
{
return;
}
pri_zhong(T->lchild);
pri_zhong(T->rchild);
printf("%c\n",T->data);
}
#ifndef __TREE_NOD_H__
#define __TREE_NOD_H__
#include <stdio.h>
#include <stdlib.h>
typedef struct tree_nod
{
char data;
struct tree_nod *lchild;
struct tree_nod *rchild;
}tree,*tree_p;
//创建结点
tree_p create_node(char data);
//创建二叉树(创建结点,再创建结点的左右子树)
tree_p create_tree();
//先序遍历
void pri(tree_p T);
//中序遍历
void pri_zhong(tree_p T);
//后序遍历
void pri_hou(tree_p T);
#endif