zoukankan      html  css  js  c++  java
  • 数据结构之二叉树篇卷二 -- 二叉树递归遍历(With Java)

    一、先序递归遍历(Preorder Recursive Traversal)

    1.1 算法

      首先需要明确的是这里的序是针对 root 节点而言的。故先序即先“访问”根节点,其次“访问”其左右节点。

    1.2 图示

    1.3 代码

      Talk is cheap, show me the code!    -- Linus Benedict Torvalds

    1     public void preOrder(Node<E> root){
    2         if(root != null) {
    3             System.out.print(root.data);
    4             System.out.print('	');
    5             preOrder(root.lnode);
    6             preOrder(root.rnode);
    7         }
    8     }

    二、中序递归遍历(Inorder Recursive Traversal)

    2.1 算法

      从根节点 root 出发,先“访问”左子树(Left Subtree),当左子树的每个节点都“访问”完后,才访问根节点,最后“访问”右子树(Right Subtree)。

    2.2 图示

    2.3 代码

     1  public void inOrder(Node<E> root){
     2         if(root != null) {
     3             //track to the deepest left branch
     4             inOrder(root.lnode);
     5             //visit the root node
     6             System.out.print(root.data);
     7             System.out.print('	');
     8             inOrder(root.rnode);
     9         }
    10     }

     

    三、后序递归遍历(Postorder Recursive Traversal)

    3.1 算法

      根节点是最后“访问”的,不管是在根节点所在的整棵树,还是根节点以下的子树都是先“访问”左子树中的节点,其次是右子树中节点,最后“访问”根节点。

    3.2 图示

    3.3 代码

     1     public void postOrder(Node<E> root){
     2         if(root != null) {
     3             //track to the deepest left branch
     4             postOrder(root.lnode);
     5             //track to the deepest right branch
     6             postOrder(root.rnode);
     7             //after visiting all the nodes of both left subtree and right subtree
     8             System.out.print(root.data);
     9             System.out.print('	');
    10         }
    11     }

    注意:层次遍历不能递归,可以结合递归条件想想为什么哦 :)

    keep reading ,keep learning, keep coding…

  • 相关阅读:
    小知识!
    命令级的python静态资源服务。
    自定义滚动条样式-transition无效
    css:a:visited限制
    react16 渲染流程
    virtual-dom
    用video标签流式加载
    golang 代码笔记
    position:fixed not work?
    go/node/python 多进程与多核cpu
  • 原文地址:https://www.cnblogs.com/sheepcore/p/11580677.html
Copyright © 2011-2022 走看看