自己对这一块的知识掌握的不是很好,所以就整理了一下,下面是代码;
#include<stdio.h>
#include<malloc.h>
typedef struct tree_node
{
char data;
struct tree_node *lchild,*rchild;
}BT_node;
BT_node *tree;
//树的创建
BT_node *creat_tree(BT_node *tree)
{
char c;
c = getchar();
if(c == '*')
{
tree = NULL;
}
else
{
tree = (struct tree_node *)malloc(sizeof(struct tree_node));
tree->data = c;
tree->lchild = creat_tree(tree->lchild);
tree->rchild = creat_tree(tree->rchild);
}
return(tree);
}
//遍历根节点
void visit_node(BT_node *tree)
{
printf(" ");
putchar(tree->data);
printf("\t");
}
//前序遍历
void pre_tree(BT_node *tree)
{
if(!tree)
{
return;
}
else
{
visit_node(tree);
pre_tree(tree->lchild);
pre_tree(tree->rchild);
}
}
//中序遍历
void mid_tree(BT_node *tree)
{
if(!tree)
{
return;
}
else
{
mid_tree(tree->lchil