代码如下:
/*******************************
*
* 功能:生成一棵二叉树,写进文件,再读出,
* 并将其重构成一个二叉树
*
* author:kangquan2008@scut blog:http://blog.youkuaiyun.com/kangquan2008
*
******************************/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_SIZE 20
typedef struct Node{
char data;
struct Node * lchild;
struct Node * rchild;
}* Tree,Node;
void create_tree(Tree * tree)
{
int data,data2;
data = fgetc(stdin);
data2 = getc(stdin);// 吸收回车键,或用 getchar() :) 注意返回值是整数!
if(data == 'z')// 遇到z结束
{
*tree = NULL;
return ;
}
if(!(*tree = malloc(sizeof(Node))))
exit(-1);
(*tree)->data = data;
create_tree(&((*tree)->lchild));
create_tree(&((*tree)->rchild));
}
void pre_order_fun(Tree tree)
{
if(tree == NULL)
return ;
printf("%c ",tree->data);
pre_order_fun(tree->lchild);
pre_order_fun(tree->rchild);
}
void in_order_fun(Tree t