<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    春風(fēng)博客

    春天里,百花香...

    導(dǎo)航

    <2008年10月>
    2829301234
    567891011
    12131415161718
    19202122232425
    2627282930311
    2345678

    統(tǒng)計

    公告

    MAIL: junglesong@gmail.com
    MSN: junglesong_5@hotmail.com

    Locations of visitors to this page

    常用鏈接

    留言簿(11)

    隨筆分類(224)

    隨筆檔案(126)

    個人軟件下載

    我的其它博客

    我的鄰居們

    最新隨筆

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    二叉樹搜索樹代碼

    /**
     * 二叉樹節(jié)點類
     * 
    @author HEYANG
     * 
    @since 2008-7-26 下午02:59:06
     
    */

    class Node<extends Comparable> {
      
    public Node(T data){
        
    this.data=data;
      }

      
      T data;
      Node
    <T> left;
      Node
    <T> right;
    }


    /**
     * 二叉樹類
     * 
    @author HEYANG
     * 
    @since 2008-7-26 下午02:55:33
     
    */

    public class BinaryTree<extends Comparable> {

      
    /**
       * 根節(jié)點
       
    */

      
    private Node<T> root;

      
    /**
       * 插入一個值
       * 
    @param value
       
    */

      
    public void insert(T value) {
        Node
    <T> node = new Node<T>(value);

        
    if (root == null{
          root 
    = node;
        }
     else {
          Node
    <T> curr = root;
          Node
    <T> parrent;

          
    while (true{
            parrent 
    = curr;

            
    if (value.compareTo(curr.data) >= 0{
              curr 
    = curr.right;

              
    if (curr == null{
                parrent.right
    =node;
                
    return;
              }

            }
     else {
              curr 
    = curr.left;

              
    if (curr == null{
                parrent.left
    =node;
                
    return;
              }

            }

          }

        }

      }


      
    /**
       * 尋找一個值對應(yīng)的節(jié)點
       * 
    @param value
       * 
    @return
       
    */

      
    public Node<T> find(T value) {
        Node
    <T> curr = root;

        
    while (curr.data.equals(value) == false{
          
    if (value.compareTo(curr.data) > 0{
            curr 
    = curr.right;
          }
     else {
            curr 
    = curr.left;
          }


          
    if (curr == null{
            
    return null;
          }

        }


        
    return curr;
      }


      
    /**
       * 輸出
       *
       
    */

      
    public void printAll() {
        System.out.println(
    "--------------先序遍歷------------------");
        preOrder(root);
        System.out.println(
    "--------------中序遍歷------------------");
        inorder(root);
        System.out.println(
    "--------------后序遍歷------------------");
        postOrder(root);
      }

      
      
    /**
       * 先序遍歷
       * 
    @param node
       
    */

      
    private void preOrder(Node<T> node) {
        
    if (node != null{
          System.out.println(node.data);
          preOrder(node.left);      
          preOrder(node.right);
        }

      }


      
    /**
       * 中序遍歷
       * 
    @param node
       
    */

      
    private void inorder(Node<T> node) {
        
    if (node != null{
          inorder(node.left);
          System.out.println(node.data);
          inorder(node.right);
        }

      }

      
      
    /**
       * 后序遍歷
       * 
    @param node
       
    */

      
    private void postOrder(Node<T> node) {
        
    if (node != null{
          postOrder(node.left);     
          postOrder(node.right);
          System.out.println(node.data);
        }

      }


      
    public static void main(String[] args) {
        
        Integer[] arr
    ={31,25,47,42,50};
        
        
    // 以數(shù)組2為基礎(chǔ)創(chuàng)建二叉樹
        BinaryTree<Integer> tree1=new BinaryTree<Integer>();   
        
    for(Integer i:arr){
          tree1.insert(i);
        }

        
        tree1.printAll();
        
        
        String[] arr02
    ={"Ceaser","Andy","Martin","Bill","Felex","Fowler","Green","Alice","Gates"};
        
        
    // 以數(shù)組2為基礎(chǔ)創(chuàng)建二叉樹
        BinaryTree<String> tree=new BinaryTree<String>();   
        
    for(String str:arr02){
          tree.insert(str);
        }

        
        tree.printAll();
        
        
    // 將在二叉樹中不存在的元素放入鏈錶
        String[] arr01={"Andy","Bill","Cindy","Douglas","Felex","Green"};
        List
    <String> ls=new ArrayList<String>();    
        
    for(String str:arr01){
          
    if(tree.find(str)==null){
            ls.add(str);
          }

        }

        
        
    // 輸出
        System.out.println("--------------二叉樹中不存在的元素有------");
        
    for(String str:ls){
          System.out.println(str);
        }

      }

    }

    posted on 2008-07-26 16:25 sitinspring 閱讀(1181) 評論(1)  編輯  收藏 所屬分類: 算法數(shù)據(jù)結(jié)構(gòu)

    評論

    # re: 二叉樹搜索樹代碼 2008-10-04 08:34 sclsch

    老兄,二叉樹有沒有實際應(yīng)用的實例。  回復(fù)  更多評論   

    sitinspring(http://m.tkk7.com)原創(chuàng),轉(zhuǎn)載請注明出處.
    主站蜘蛛池模板: 免费夜色污私人影院网站电影| 午夜神器成在线人成在线人免费 | 精品亚洲永久免费精品| 亚洲国产日韩综合久久精品| 国产精品亚洲高清一区二区| 日本精品人妻无码免费大全| 精品久久久久亚洲| 亚洲综合区小说区激情区| 成年男女男精品免费视频网站 | 国产一级一毛免费黄片| 亚洲成a人无码亚洲成av无码 | 亚洲乱码在线卡一卡二卡新区| 在线免费一区二区| 亚洲一区二区三区免费观看| 亚洲人6666成人观看| 午夜影视在线免费观看| 羞羞视频免费网站入口| 图图资源网亚洲综合网站| 在线免费观看一级毛片| 很黄很色很刺激的视频免费| 最近中文字幕电影大全免费版| 亚洲人成亚洲人成在线观看| 99精品视频免费在线观看| 两个人看的www免费高清| 国产成人1024精品免费| 大片免费观看92在线视频线视频| 亚洲精品福利视频| 亚洲αv久久久噜噜噜噜噜| 亚洲AV日韩精品久久久久久久| 91在线品视觉盛宴免费| 亚洲性线免费观看视频成熟| 日韩亚洲国产高清免费视频| 亚洲免费视频网址| AV大片在线无码永久免费| www视频免费看| 在线观看免费av网站| 久久免费看黄a级毛片| 亚洲高清视频免费| 国产免费AV片在线播放唯爱网| 国产精品青草视频免费播放| 在线视频网址免费播放|