二叉树,添加,查找

public class Tree {
    
    TreeNode last = null;
    TreeNode root = null;
    
    
    public Tree(int value){
        root = createNode(value);
    }
        
    //结构
     static class TreeNode{
         int data;
         TreeNode left;
         TreeNode right; 
     }
     
     //查找结点
     public boolean searchTreeNode(int key,TreeNode tree){
         if(tree == null){
             return false;
         }
         if(tree.data == key){
             return true;
         }else if(tree.data > key){
             last = tree;
             searchTreeNode(key,tree.left);
         }else if(tree.data < key){
             last = tree;
             searchTreeNode(key,tree.right);
         }
         return false;
     }
     
     
     //添加节点
     public void addTreeNode(int key){
         if(!searchTreeNode(key,root)){
             TreeNode tree = createNode(key);
             if(key < last.data){
                 last.left = tree;
             }else if(key>last.data){
                 last.right = tree;
             }
         }
         last = null;
     }
     
     //遍历
     public void iterate(TreeNode node){
        if(node ==null){
            return;
        }
        System.out.println(node.data);
        iterate(node.left);
        iterate(node.right);
     }
    
     public TreeNode createNode(int key){
        TreeNode tree = new TreeNode();
        tree.data = key;
        return tree;
     }
     
     public void removeNode(int key){
         
     }
     
     public static void main(String[] args){
         Tree tree = new Tree(4);
         tree.addTreeNode(5);
         tree.addTreeNode(6);
         tree.addTreeNode(3);
         tree.addTreeNode(7);
         tree.addTreeNode(8);
         tree.addTreeNode(9);
         tree.iterate(tree.root);
     }
     
}

 

posted @ 2014-05-05 18:40  JimmyYong  阅读(411)  评论(0编辑  收藏  举报