数据结构(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);//访问根结点
	}
}

总结:

相关推荐
Univin18 小时前
C++(10.4)
开发语言·数据结构·c++
KyollBM18 小时前
每日羊题 (质数筛 + 数学 | 构造 + 位运算)
开发语言·c++·算法
Univin20 小时前
C++(10.5)
开发语言·c++·算法
Asmalin20 小时前
【代码随想录day 35】 力扣 01背包问题 一维
算法·leetcode·职场和发展
剪一朵云爱着21 小时前
力扣2779. 数组的最大美丽值
算法·leetcode·排序算法
qq_4286396121 小时前
虚幻基础:组件间的联动方式
c++·算法·虚幻
深瞳智检21 小时前
YOLO算法原理详解系列 第002期-YOLOv2 算法原理详解
人工智能·算法·yolo·目标检测·计算机视觉·目标跟踪
怎么没有名字注册了啊21 小时前
C++后台进程
java·c++·算法
Rubisco..1 天前
codeforces 2.0
算法
未知陨落1 天前
LeetCode:98.颜色分类
算法·leetcode