zoukankan      html  css  js  c++  java
  • Java学习(十八):二叉树的三种递归遍历

    二叉树的三种递归遍历:

      1 public class StudentNode
      2 {
      3     private String name;
      4     
      5     private StudentNode leftNode;
      6     
      7     private StudentNode rightNode;
      8     
      9     public String getName()
     10     {
     11         return name;
     12     }
     13     
     14     public void setName(String name)
     15     {
     16         this.name = name;
     17     }
     18     
     19     public StudentNode getLeftNode()
     20     {
     21         return leftNode;
     22     }
     23     
     24     public void setLeftNode(StudentNode leftNode)
     25     {
     26         this.leftNode = leftNode;
     27     }
     28     
     29     public StudentNode getRightNode()
     30     {
     31         return rightNode;
     32     }
     33     
     34     public void setRightNode(StudentNode rightNode)
     35     {
     36         this.rightNode = rightNode;
     37     }
     38     
     39     public static void main(String[] args)
     40     {
     41         StudentNode root = new StudentNode();
     42         root.setName("Name1");
     43         StudentNode node2 = new StudentNode();
     44         node2.setName("Name2");
     45         StudentNode node3 = new StudentNode();
     46         node3.setName("Name3");
     47         StudentNode node4 = new StudentNode();
     48         node4.setName("Name4");
     49         StudentNode node5 = new StudentNode();
     50         node5.setName("Name5");
     51         StudentNode node6 = new StudentNode();
     52         node6.setName("Name6");
     53         StudentNode node7 = new StudentNode();
     54         node7.setName("Name7");
     55         //
     56         // ****root***
     57         // ***/ *****
     58         // **2 ****5**
     59         // */  **/***
     60         // 3 *4 **6***
     61         // **********
     62         // ********7**
     63         //
     64         root.setLeftNode(node2);
     65         root.setRightNode(node5);
     66         node2.setLeftNode(node3);
     67         node2.setRightNode(node4);
     68         node5.setLeftNode(node6);
     69         node6.setRightNode(node7);
     70         
     71         // 前序遍历1-2-3-4-5-6-7
     72         rootFirst(root);
     73         // 中序遍历3-2-4-1-6-7-5
     74         rootMiddle(root);
     75         // 后序遍历3-4-2-7-6-5-1
     76         rootLast(root);
     77     }
     78     
     79     private static void rootFirst(StudentNode node)
     80     {
     81         System.out.println(node.getName());
     82         if (null != node.getLeftNode())
     83         {
     84             rootFirst(node.getLeftNode());
     85         }
     86         if (null != node.getRightNode())
     87         {
     88             rootFirst(node.getRightNode());
     89         }
     90     }
     91     
     92     private static void rootMiddle(StudentNode node)
     93     {
     94         if (null != node.getLeftNode())
     95         {
     96             rootMiddle(node.getLeftNode());
     97         }
     98         System.out.println(node.getName());
     99         if (null != node.getRightNode())
    100         {
    101             rootMiddle(node.getRightNode());
    102         }
    103     }
    104     
    105     private static void rootLast(StudentNode node)
    106     {
    107         if (null != node.getLeftNode())
    108         {
    109             rootLast(node.getLeftNode());
    110         }
    111         if (null != node.getRightNode())
    112         {
    113             rootLast(node.getRightNode());
    114         }
    115         System.out.println(node.getName());
    116     }
    117 }
  • 相关阅读:
    Pytorch训练中途无错退出
    Pytroch 导入报错Microsoft Visual C++ Redistributable is not installed
    Pytorch GRU/LSTM 权重参数初始化
    matlab从fig图中提取数据
    matlab调整绘图的边缘空白尺寸
    IDEA-java工具类打JAR包
    浅谈python print(xx, flush = True)
    Linux
    python怎样安装whl文件
    linux命令补充
  • 原文地址:https://www.cnblogs.com/moleme/p/4443054.html
Copyright © 2011-2022 走看看