数据结构(5.3_1)——二叉树的先中后序遍历

先序遍历------左右------前缀表达式

中序遍历------左右------中缀表达式

后序遍历------左右------后缀表达式

二叉树的遍历(手算)

先序遍历代码

cpp 复制代码
struct ElemType
{
	int value;
};
//二叉树的结点(链式存储)
typedef struct BiTNode {
	ElemType data;//数据域
	struct BiTNode *lchild, * rchild;//左、右孩子指针
}BiTNode,*BiTree;
void visit(BiTree T) {
	if (T != NULL) { // 确保结点非空
		printf("%d ", T->data.value); // 打印结点的value
	}
}
//先序遍历
void PreOrder(BiTree T) {
	if (T != NULL) {
		visit(T);//访问根结点
		PreOrder(T->lchild);//递归遍历左子树
		PreOrder(T->rchild);//递归遍历右子树
	}
}

中序遍历代码

cpp 复制代码
struct ElemType
{
	int value;
};
//二叉树的结点(链式存储)
typedef struct BiTNode {
	ElemType data;//数据域
	struct BiTNode *lchild, * rchild;//左、右孩子指针
}BiTNode,*BiTree;
void visit(BiTree T) {
	if (T != NULL) { // 确保结点非空
		printf("%d ", T->data.value); // 打印结点的value
	}
}
//先序遍历
void PreOrder(BiTree T) {
	if (T != NULL) {
		PreOrder(T->lchild);//递归遍历左子树
		visit(T);//访问根结点
		PreOrder(T->rchild);//递归遍历右子树
	}
}

后序遍历代码

cs 复制代码
struct ElemType
{
	int value;
};
//二叉树的结点(链式存储)
typedef struct BiTNode {
	ElemType data;//数据域
	struct BiTNode *lchild, * rchild;//左、右孩子指针
}BiTNode,*BiTree;
void visit(BiTree T) {
	if (T != NULL) { // 确保结点非空
		printf("%d ", T->data.value); // 打印结点的value
	}
}
//先序遍历
void PreOrder(BiTree T) {
	if (T != NULL) {
		PreOrder(T->lchild);//递归遍历左子树
		PreOrder(T->rchild);//递归遍历右子树
		visit(T);//访问根结点
	}
}

总结:

相关推荐
chenchihwen15 分钟前
深度解析RAG系统中的PDF解析模块:Docling集成与并行处理实践
python·算法·pdf
Chloeis Syntax1 小时前
栈和队列笔记2025-10-12
java·数据结构·笔记·
404未精通的狗1 小时前
(数据结构)线性表(下):链表分类及双向链表的实现
数据结构·链表
做科研的周师兄1 小时前
【机器学习入门】7.4 随机森林:一文吃透随机森林——从原理到核心特点
人工智能·学习·算法·随机森林·机器学习·支持向量机·数据挖掘
Sunsets_Red2 小时前
差分操作正确性证明
java·c语言·c++·python·算法·c#
【杨(_> <_)】2 小时前
SAR信号处理重要工具-傅里叶变换(二)
算法·信号处理·傅里叶分析·菲涅尔函数
怎么没有名字注册了啊2 小时前
爬动的蠕虫
算法
取酒鱼食--【余九】2 小时前
机器人学基础(一)【坐标系和位姿变换】
笔记·算法·机器人·开源·机器人运动学·机器人学基础
晨非辰3 小时前
【面试高频数据结构(四)】--《从单链到双链的进阶,读懂“双向奔赴”的算法之美与效率权衡》
java·数据结构·c++·人工智能·算法·机器学习·面试
im_AMBER3 小时前
数据结构 03 栈和队列
数据结构·学习·算法