zoukankan      html  css  js  c++  java
  • 二叉树的遍历

    二叉树的遍历

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

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

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

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

    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;
    }
  • 相关阅读:
    公司-科技-电商:京东
    公司-科技-协调:泛微
    公司-科技-财务:新中大
    公司-科技-财务:金蝶
    公司-科技-财务:用友
    公司-科技:SAMSUNG
    杂项-公司:华为
    “莆田系”到底是个什么玩意儿?
    Java 虚拟机是如何判定两个 Java 类是相同的?
    java类加载器是什么?
  • 原文地址:https://www.cnblogs.com/wangkaipeng/p/6881550.html
Copyright © 2011-2022 走看看