树遍历之中序遍历
声明:本文章知识只介绍二叉树的遍历方式。
中序遍历是一种树的遍历方式,下面我就来讲一讲。
1.简介
中序遍历又叫中根遍历。中序遍历用的是深度优先搜索。中序遍历的遍历方式是左子树(结点)->根节点->右子树(结点)。(如果你看了《树遍历之先序遍历》,那你就能总结出来。欢迎大家在评论区写出总结)。 中序遍历的步骤也只有两个:构造树和中序遍历。
2.代码
1.构造树(与先序遍历一样)
int n;
struct tree{
int l, r;
};
tree b_tree[100005];
//main
cin >> n;
for (int i = 1; i <= n; i++) cin >> b_tree[i].l >> b_tree[i].r;
2.中序遍历
void middle_order(int x){ //x为目前节点,第一次为根节点
if (0 == x)//如果不存在这个节点
{
return;
}
middle_order(b_tree[x].l);//遍历左子树
cout << x << " ";//先遍历左子树,再输出
middle_order(b_tree[x].r);//遍历右子树
}
//main
middle_order(1);
这就是中序遍历的全部了,点个赞再走呗。欢迎在评论区留言!
c++算法大全 文章被收录于专栏
本专栏收集了c++大部分基础算法,附有简介和代码。