C语言创建二叉树的方法(全)

本文介绍了如何使用链式储存结构实现二叉树,并详细阐述了前序、中序和后序遍历的方法。重点讲解了如何通过先序和中序遍历建立二叉树的算法,以及使用#号法仅依赖先序遍历构建二叉树的过程。代码示例展示了在C语言中如何实现这些操作。

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


前言

一、二叉树的链式储存

typedef struct BitNode
{
   
	char data;
	struct BitNode* lchild, * rchild;
}BitNode, * BiTree;
//BiTree 相当于 struct BitNode * BiTree;

二、前序,中序,后序

前序:先访问树的根节点然后是左子树,最后是右子树。
中序:先访问树的左子树,然后是根节点,最后是右子树。
后序:先访问树的左子树,然后右子树,最后是根节点,。

中序和先序建立二叉树

为什么一种遍历方法不能建立,相信大家都懂了。
思路:(1)通过先序遍历找到根结点,再通过根结点在中序遍历的位置找出左子树、右子树。(2)根据左子树在先序遍历结果的顺序,找到左子树的根结点,视左子树为一棵独立的树,转步骤(1)。(3)根据右子树在先序遍历结果的顺序,找到右子树的根结点,视右子树为一棵独立的树,转步骤(1)。

void BuildTree(BiTree & T, char* pre_str, char* in_str, int L1, int R1, int L2, int R2)
{
   
	T = (BitNode*)malloc(sizeof(BitNode));//申请一个节点
	T->data = pre_str[L1];//判断用中序,赋值用先序
	int in_root 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

落春只在无意间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值