주문 탐색에, 이진 트리를 작성 수준, 전순 주사를 통과, postorder

수입 인 java.util.ArrayList;
수입 되는 java.util.LinkedList;
수입 java.util.Queue; 

공용  클래스 자바 {
     공공  정적  무효 메인 (문자열 []에 args) { 
        자바 자바 = 새로운 자바 (); 
        bitTreeNode 루트 = Java.createTree (); 
        에서 System.out.println ( "前序遍历:" ); 
        Java.preorder (루트); 
        에서 System.out.println ( "\ n을中序遍历:" ); 
        Java.inorder (루트); 
        에서 System.out.println ( "\ n을后序遍历:" ); 
        Java.lastorder (루트);
        에서 System.out.println ( "\ n을层次遍历:" ); 
        ArrayList를 <개체> ArrayList를 = Java.PrintFromTopToBottom (루트);
        대한 (객체 O를 : ArrayList를) { 
            System.out.print (O); 
        } 
    } 


    공개 bitTreeNode createTree () { 
        bitTreeNode D = 새로운 bitTreeNode ( 'D'  , ); 
        bitTreeNode 전자 = 새로운 bitTreeNode ( 'E',  , ); 
        bitTreeNode의 F = 새로운 bitTreeNode ( 'F',  ,  ); 
        bitTreeNode g = 새로운 bitTreeNode ( 'g',  , ); 
        bitTreeNode B = 새로운 bitTreeNode ( 'B' , D, E); 
        bitTreeNode C = 새로운 bitTreeNode ( 'C' , F, G); 
        bitTreeNode = 새로운 bitTreeNode ( 'A' , B를, c);
        반환 을; 
    } 
    공공 ArrayList를 <개체>   PrintFromTopToBottom (bitTreeNode 루트) { 
        ArrayList를 <개체> ArrayList를 = 새로운 ArrayList를 <> (); <bitTreeNode> 큐 =  LinkedList의 <> ();
        경우 (루트! = 예약 주문 (bitTreeNode 노드) {
        널 (null) ) { 
            queue.offer (루트); 
        } 
        동안 (! queue.isEmpty ()) { 
            bitTreeNode 노드 = queue.poll (); 
            arrayList.add (node.val); 
            경우 (node.lchild! = null이 ) 
                queue.offer (node.lchild); 
            경우 (node.rchild! = null이 ) 
                queue.offer (node.rchild); 
        } 


        반환 되는 ArrayList; 
    } 
    공공  공극 경우 (노드 == )
             ; 
        System.out.print (node.val);
        (node.lchild) 예약 주문; 
        (node.rchild) 예약 주문; 
    } 
    공공  공극 (bitTreeNode 노드) {중위
         경우 (노드 == )
             ; 
        (node.lchild) 중위; 
        System.out.print (node.val); 
        (node.rchild) 중위; 
    } 
    공공  공극 lastorder (bitTreeNode 노드) {
         경우 (노드 == )
             ; 
        lastorder (node.lchild); 
        lastorder (node.rchild); 
        System.out.print (node.val); 
    } 


} 
클래스 bitTreeNode는 { 
    발 객체; 
    bitTreeNode의 lchild; 
    bitTreeNode의 rchild; 
    공개 bitTreeNode {(계산해 bitTreeNode의 lchild, bitTreeNode의 rchild 개체)
          .val = 브로 단계;
         .lchild = lchild;
         .rchild = rchild; 
    } 
}

 

추천

출처www.cnblogs.com/hcw110/p/11256625.html