树遍历之中序遍历

声明:本文章知识只介绍二叉树的遍历方式。

中序遍历是一种树的遍历方式,下面我就来讲一讲。

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++大部分基础算法,附有简介和代码。

全部评论

相关推荐

评论
2
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务