用java代码实现二叉树的遍历算法

时间:2021-04-06 17:31:55

              二叉树的遍历可以采用递归算法来实现,遍历方式有三种:先序遍历,中序遍历,后序遍历。

   下面是一个例子:

                     public   class   BinTree{

                            char data;             //根节点数据

                             BinTree  left;       //左子树

                             BinTree  right;    //右字树

                             

                      public       Bintree(char    data)                      //实例化二叉树类

                      {

                                   this.data=data;

                                  left=null;

                                  right=null;

                      }

                      public      static            void             preOrder(BinTree root)           {           //先根遍历

                                  if(root!=null)   {

                                         System.out.print(root..data+"-");

                                         preOrder(root.left);

                                        preOrder(root.right);

                                  }

                     }

                     public static   void     inOrder(BinTree  root) {                //中根遍历

                            if(root!=null){

                                     inOrder(root.left);

                                     System.out.print(root.data+"-----");

                                     inOrder(root.right);

                            }

                  }

                  public    static     void      postOrder(BinTree   root){              //后根遍历

                            if(root!=null) {

                                       postOrder(root.left);

                                       postOrder(root.right);

                                       System.out.print(root.data+"-----");

                           }

                }

               public    static    void    main(String[ ]    str)   {

                        BinTree   root  =new    BinTree('A');         //创建二叉树

                        root.left = new BinTree('B');

                        root.right=new  BinTree('C') ;

                       BinTree   b=root.left;

                      b.left  =new  BinTree('D');

                     BinTree    c=root.right;

                    c.left  =new  BinTree('E');

                    c.right=new  BinTree('F');

                    System.out.println("先根遍历:");

                    preOrder(root);

                   System.out.println ();

                    System.out.println("中根遍历:");

                    inOrder(root);

                   System.out.println();

                   System.out.println("后根遍历:");

                   postOrder(root);

        }

}

    这是个简单的例子,本人还是个菜鸟,正在学java,不足之处,欢迎各位大神批评指正。