当前位置 : 主页 > 编程语言 > java >

二叉树的基本操作

来源:互联网 收集:自由互联 发布时间:2021-06-28
二叉树 package 实验二;/** * author:黄良运 * time:11.30 */import java.util.Stack;public class BiTree {BiTreeNode root=null; static int $ = 0; public BiTree() { this.root = null; } public BiTree(AnyType[] preorder) {// "a","b","d",
二叉树
package 实验二;

/**
 * author:黄良运
 * time:11.30
 */
import java.util.Stack;

public class BiTree
 
   {
	BiTreeNode
  
    root=null; static int $ = 0; public BiTree() { this.root = null; } public BiTree(AnyType[] preorder) {// "a","b","d","#","#","#","c","e","#","#","f","#","#" AnyType data = preorder[$++]; if (!data.equals("#")) { root = new BiTreeNode
   
    (data); root.lchild = new BiTree
    
     (preorder).root; root.rchild = new BiTree
     
      (preorder).root; } else { root = null; } } int count = 0; public BiTreeNode
      
        create(AnyType[] h) { BiTreeNode
       
         root = null; if (count < h.length) { AnyType data = h[count++]; if (!data.equals("#")) { root = new BiTreeNode
        
         (data); root.lchild = create(h); root.rchild = create(h); } else { root = null; } } return root; } // static inner class static class BiTreeNode
         
           { public AnyType data; public BiTreeNode
          
            lchild, rchild; public BiTreeNode() { this(null); } public BiTreeNode(AnyType data) { this(data, null, null); } public BiTreeNode(AnyType data, BiTreeNode
           
             lchild, BiTreeNode
            
              rchild) { super(); this.data = data; this.lchild = lchild; this.rchild = rchild; } } // non-Recursive traversal by preorder public void preTraverse_nonR(BiTreeNode
             
               root) { BiTreeNode
              
                T = root; if (T != null) { Stack
               
                                  biTree = new BiTree
                                 
                                  (a);// ABDEGCFH//DBGEAFHC BiTree
                                  
                                    biTree2 = new BiTree
                                   
                                    ();// ABDEGCFH//DBGEAFHC // biTree.root = biTree.createBiTreeByPreorder(a); biTree.preTraverse(biTree.root);// abdcef System.out.println(); biTree.preTraverse_nonR(biTree.root); System.out.println(); biTree.inTraverse(biTree.root);// dbaecf System.out.println(); biTree.inTraverse_nonR(biTree.root); System.out.println(); biTree.postTraverse(biTree.root); System.out.println(); biTree.postTraverse_nonR(biTree.root);// dbefca System.out.println(); System.out.println("深度:" + biTree.getDepth(biTree.root)); System.out.println("叶子:" + biTree.getTreeLeaf(biTree.root)); System.out.println("叶子:" + biTree.leaf(biTree.root)); System.out.println(); BiTreeNode
                                    
                                      f = biTree2.create(a); biTree2.preTraverse(f); System.out.println(); biTree2.inTraverse(f); } }
                                    
                                   
                                  
                                 
                                
                               
                              
                             
                            
                           
                          
                         
                        
                     
                    
                 
                
             
            
           
          
         
        
       
      
     
    
   
  
 
网友评论