将二叉树写入文件,再读出重新构建

这篇博客介绍了一个程序,用于创建二叉树,将其序列化存入文件,然后从文件读取数据重新构建相同的二叉树。通过前序遍历和中序遍历来实现树的序列化和反序列化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码如下:
/*******************************
 *
 * 功能:生成一棵二叉树,写进文件,再读出,
 *       并将其重构成一个二叉树
 *
 * 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
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值