二叉树的四种遍历(java代码)

代码1:

四种遍历方式

代码2

测试上面的四种遍历+先序创建树

package 第四章;

import java.util.LinkedList;
/*
 * 测试二叉树的  创建、遍历
 * 二叉树结构如下
 *            A
 *       B         C
 *    D     E   F     G
 *  H   I        J 
 */
public class TestBinaryTree 
{
          
   
    public static void main(String[] args) 
    {
        BinaryTree<Character> binaryTree=new BinaryTree<>();

        //输入ABDH##I##E##CF#J##G##(#用null代替)
        LinkedList<Character> tree=new LinkedList<>();
        tree.add(A);tree.add(B);tree.add(D);
        tree.add(H);tree.add(null);tree.add(null);
        tree.add(I);tree.add(null);tree.add(null);
        tree.add(E);tree.add(null);tree.add(null);
        tree.add(C);tree.add(F);tree.add(null);
        tree.add(J);tree.add(null);tree.add(null);
        tree.add(G);tree.add(null);tree.add(null);

        TreeNode<Character> root=binaryTree.creatBinaryPre(tree);

        //先序遍历(递归)
        binaryTree.PrintBinaryTreePreRecur(root);System.out.println();
        //中序遍历(递归)
        binaryTree.PrintBinaryTreeMidRecur(root);System.out.println();
        //后序遍历(递归)
        binaryTree.PrintBinaryTreeBacRecur(root);System.out.println();


        //先序遍历(非递归)
        binaryTree.PrintBinaryTreePreUnrecur(root);System.out.println();
        //中序遍历(非递归)
        binaryTree.PrintBinaryTreeMidUnrecur(root);System.out.println();
        //后序遍历(非递归)
        binaryTree.PrintBinaryTreeBacUnrecur(root);System.out.println();
        //层次遍历(非递归)
        binaryTree.PrintBinaryTreeLayerUnrecur(root);System.out.println();


    }
}
经验分享 程序员 微信小程序 职场和发展