树的三种深搜遍历

本文介绍了二叉树的三种深度遍历方法:先序遍历(根左右)、中序遍历(左根右)和后序遍历(左右根),并提供了具体的遍历顺序示例及代码实现。通过示例,作者阐述了遍历顺序的差异,并鼓励读者练习以加深理解。

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

作为一个立志要好好学习的蒟蒻,搜集了好多关于数据结构的资料。对于树的遍历这点,看网上那帮大佬的指针做法,不禁瑟瑟发抖。其实对于指针的做法,我们可以用数组来模拟指针,效率也是很快。

二叉树的三种深搜遍历分为先序遍历、中序遍历和后序遍历。

先序遍历:先遍历根节点,然后左子树,最后右子树【根左右】

中序遍历:先遍历左子树,然后根节点,最后右子树【左根右】

后序遍历:先遍历左子树,然后右子树,最后根节点【左右根】

如下图qwq

所以说对于这个图呢,先序遍历就是:A->B->D->H->I->E->C->F->G

中序遍历就是:H->D->I->B->E->A->F->C->G->

后序遍历就是:H->I->D->E->B->F->G->C->A

所以对于先序中序后序遍历的方式就很显然了,其实就是遍历顺序的不同

下面附代码示例(以先序遍历的输入为准)我们在这里规定Z为空,即没有这个节点

#include<iostream>
using namespace std;
const char inf='Z';
struct NODE{
	char a;//结点的内容 
	int pr;//父结点的数组下标位置 ; 
	int l;//左子树下标位置; 
	int r;//右子树下标位置; 
}node[100];
void input (int m)//由于是先序遍历输入,所以需要递归输入; 
{
	cin>>node[m]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值