当前位置: 首页 > news >正文

二叉树的前,中,后序遍历

我们来了解一下二叉树的遍历,话不多说

二叉树的遍历的概念:

二叉树有四种遍历方式,分别为前序遍历,中序遍历,后序遍历和层序遍历,但我们今天谈谈前三种,并实现它

前序遍历: 按照根,左子树,右子树的顺序进行遍历,方便记忆:根左右

中序遍历: 按照左子树,根,右子树的顺序进行遍历,方便记忆:左根右

后序遍历: 按照左子树,右子树,根的顺序进行遍历,方便记忆:左右根

注意:对于左右子树,是相对于每个根结点来说的,遍历时必须直到最后为空时,再往上返回

看了概念依然会有很多人不解(包括我),所以我们接下来来用中序遍历的例子帮助我们更好地理解

根据中序遍历的左根右的顺序,和上图的方向,我们可以写出中序遍历的顺序结构形式了:

递归代码实现:

创建二叉树:

我们定义数据域和指针域,指针域为树的左右结点

typedef int BTDataType;
typedef struct BinaryTreeNode
{
	BTDataType data;//数据域
	struct BinaryTreeNode* left;
	struct BinaryTreeNode* right;
}BTNode;

前中后序遍历:

我们通过中序遍历发现当它往下调用完之后会往上返回,这符合递归的调用的方式

//前序遍历--根左右
void PreOrder(BTNode* root)
{
	if (root == NULL)//递归函数的出口
	{
		printf("NULL ");
		return;
	}

	printf("%d ", root->data);
	PreOrder(root->left);
	PreOrder(root->right);
}
//中序遍历--左根右
void MidOrder(BTNode* root)
{
	if (root == NULL)//递归函数的出口
	{
		printf("NULL ");
		return;
	}
	
	MidOrder(root->left);
	printf("%d ", root->data);
	MidOrder(root->right);
}
//后序遍历--左右根
void AftOrder(BTNode* root)
{
	if (root == NULL)//递归函数的出口
	{
		printf("NULL ");
		return;
	}
	
	AftOrder(root->left);
	AftOrder(root->right);
	printf("%d ", root->data);
}

http://www.dtcms.com/a/85541.html

相关文章:

  • 前端 -- 计算机图形学基础:光与三角形面(Mesh)求交
  • 系统转换、系统维护、净室软件工程、构件软件工程(高软51)
  • 【C++教程】bool类型
  • Android平台毫秒级低延迟HTTP-FLV直播播放器技术探究与实现
  • 【算法day19】括号生成——数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。
  • MySQL中怎么分析性能?
  • ollama 设置环境变量OLLAMA_HOST允许外部访问
  • 深入探索ArkUI中的@LocalBuilder装饰器:构建高效可维护的UI组件
  • 【图像处理基石】ISP中的TNR算法详解:原理、实现与优化
  • 【经验总结】AUTOSAR架构下NvMBlock无效问题分析
  • 替代-UX设计师
  • 第四章·字符串列表元组字典集合
  • 数据结构与算法-数据结构-树状数组
  • NetSuite Saved Search隐藏功能 之 行间比较
  • Go红队开发—CLI框架(一)
  • 使用逆滤波法、维纳滤波法、约束最小二乘法、Lucy - Richardson算法恢复运动降质图像的Matlab代码
  • 数据结构-----树
  • OSPF多区域通信
  • 如何在Linux CentOS上安装和配置Redis
  • C++模板编程与元编程面试题及参考答案(精选100道题)
  • Linux线程安全
  • 在vitepress中使用vue组建,然后引入到markdown
  • JAVASCRIPT 基础 DOM元素,MAP方法,获取输入值
  • 【AcWing】算法基础课-数学知识
  • 快速排序总结
  • Excel 豆知识 - 如何打开Online Web版 Excel/Word
  • 视频结构化框架VideoPipe-OpenCV::DNN-TensorRT安装教程【Nvidia各系列显卡-亲测有效】
  • 【数据结构】单链表
  • 【xiaozhi赎回之路-2:语音可以自己配置就是用GPT本地API】
  • 组件日志——etcd