二叉树的遍历

Posted 穿越银河系

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二叉树的遍历相关的知识,希望对你有一定的参考价值。

二叉树的遍历

和一般的树不同,二叉树的子结点分为 左孩子 和 右孩子,左孩子、右孩子均有可能为空。

也就是说,二叉树上结点的子结点之间是有序的。

正因如此,在二叉树中,除了深度优先搜索和广度优先搜索以外,还有几种特殊的遍历方法:先序遍历、中序遍历和后序遍历。

先序遍历是指,在对二叉树进行遍历时,先访问当前子树的根结点,再依次访问左子树和右子树。

C++ 示例代码如下:

int lch[MAX_N], rch[MAX_N];

void preorder(int u) {
    cout << "visiting " << u << endl;
    if (lch[u]) {
        preorder(lch[u]);
    }
    if (rch[u]) {
        preorder(rch[u]);
    }
}
 

中序遍历是指在对二叉树进行遍历时,先访问当前子树的左子树,再访问当前子树的根结点,最后访问当前子树的右子树。

C++ 示例代码如下:

int lch[MAX_N], rch[MAX_N];
void preorder(int u) {
    if (lch[u]) {
        preorder(lch[u]);
    }
    cout << "visiting " << u << endl;
    if (rch[u]) {
        preorder(rch[u]);
    }
}
 

后序遍历是指在对二叉树进行遍历时,先依次访问当前子树的左右子树,最后访问当前子树的根结点。

C++ 示例代码如下:

int lch[MAX_N], rch[MAX_N];

void preorder(int u) {
    if (lch[u]) {
        preorder(lch[u]);
    }
    if (rch[u]) {
        preorder(rch[u]);
    }
    cout << "visiting " << u << endl;
}

 

以上是关于二叉树的遍历的主要内容,如果未能解决你的问题,请参考以下文章

二叉树的遍历

讲透学烂二叉树:二叉树的遍历图解算法步骤及JS代码

二叉树(2.二叉树的遍历和实现)

根据二叉树的前序遍历和中序遍历构建二叉树的c语言完整代码

通过遍历序列构造二叉树(扩展二叉树的先序先序和中序后序和中序层序和中序)附可执行完整代码

代码题— 二叉树的层次遍历