이 진 트 리 가 옮 겨 다 니 는 여러 가지 실현

2447 단어 데이터 구조
package com.ys;

import java.awt.*;
import java.util.ArrayList;
import java.util.Stack;

public class Demo13 {
    //   
    //    
    public  void   preTraverse(TreNode node){
        System.out.println(node.val);
        preTraverse(node.left);
        preTraverse(node.right);
    }
    //    
    public  void   midTraverse(TreNode node){
        preTraverse(node.left);
        System.out.println(node.val);
        preTraverse(node.right);
    }
    //    
    public  void   afterTraverse(TreNode node){
        preTraverse(node.left);
        preTraverse(node.right);
        System.out.println(node.val);
    }


    //    
    public  void preT(TreNode node){
        Stack stack=new Stack();
        if (node==null)return;
        stack.push(node);
        while (node!=null){
            node=stack.pop();
            System.out.println(node.val);
            if (node.right!=null)stack.push(node.right);
            if (node.left!=null)stack.push(node.left);
        }
    }
    //    
    public  void midT(TreNode node){
        Stack stack=new Stack();
        if (node==null)return;
        while (!stack.isEmpty()&&node!=null){
           if(node!=null){
               stack.push(node);
               node=node.left;
           }else {
               node=stack.pop();
               System.out.println(node.val);
               node=node.right;
            }
        }
    }
    //    
    public  void afterT(TreNode node){
        Stack stack=new Stack();
        Stack stack2=new Stack();
        if (node==null)return;
        stack.push(node);
        while (node!=null){
            node=stack.pop();
            stack2.push(node);
            if (node.left!=null)stack.push(node.left);
            if (node.right!=null)stack.push(node.right);
        }
        while (!stack.isEmpty()){
            System.out.println(stack.pop().val);
        }
    }
    //    
    public  void cengT(TreNode node){
        ArrayList a=new ArrayList();
        a.add(node);
        while (a.size()!=0){
            node=a.remove(0);
            System.out.println(node.val);
            if (node.left!=null)a.add(node.left);
            if (node.right!=null)a.add(node.right);
            }
        }

}

좋은 웹페이지 즐겨찾기