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

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

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

    春風博客

    春天里,百花香...

    導航

    <2008年7月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    統(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;
              }

            }

          }

        }

      }


      
    /**
       * 尋找一個值對應的節(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為基礎創(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為基礎創(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 閱讀(1179) 評論(1)  編輯  收藏 所屬分類: 算法數(shù)據(jù)結構

    評論

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

    老兄,二叉樹有沒有實際應用的實例。  回復  更多評論   

    sitinspring(http://m.tkk7.com)原創(chuàng),轉載請注明出處.
    主站蜘蛛池模板: 亚洲国产成人久久综合碰| 亚洲精品国产成人99久久| 免费a级黄色毛片| 黄页网址在线免费观看| 亚洲国产精品国产自在在线| 最近最新高清免费中文字幕| 国产在线19禁免费观看国产| 美女黄网站人色视频免费| 亚洲国产日韩在线人成下载| 五月亭亭免费高清在线| MM1313亚洲国产精品| 最新亚洲成av人免费看| 1000部免费啪啪十八未年禁止观看| 国产综合激情在线亚洲第一页| 五月婷婷亚洲综合| 久久久久久一品道精品免费看| 亚洲av永久无码嘿嘿嘿| 毛茸茸bbw亚洲人| 99re6在线视频精品免费下载| 亚洲精品中文字幕| 亚洲av无码国产精品色午夜字幕| 日韩吃奶摸下AA片免费观看| fc2免费人成在线视频| 久久久久亚洲国产| 久久久久亚洲AV成人无码网站 | 无人在线直播免费观看| 男男黄GAY片免费网站WWW| 亚洲免费在线视频| 亚洲性线免费观看视频成熟| 成人亚洲性情网站WWW在线观看| 国产免费131美女视频| 18禁止观看免费私人影院| 国产免费A∨在线播放| 国产亚洲蜜芽精品久久| 一区二区三区免费精品视频| 亚洲另类春色校园小说| 九九全国免费视频| 成人免费观看一区二区| 一区二区三区亚洲视频| 亚洲视频在线观看网址| 亚洲AV本道一区二区三区四区 |