<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)計(jì)

    公告

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

    Locations of visitors to this page

    常用鏈接

    留言簿(11)

    隨筆分類(224)

    隨筆檔案(126)

    個(gè)人軟件下載

    我的其它博客

    我的鄰居們

    最新隨筆

    搜索

    積分與排名

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    二叉樹搜索樹代碼

    /**
     * 二叉樹節(jié)點(diǎn)類
     * 
    @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é)點(diǎn)
       
    */

      
    private Node<T> root;

      
    /**
       * 插入一個(gè)值
       * 
    @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;
              }

            }

          }

        }

      }


      
    /**
       * 尋找一個(gè)值對(duì)應(yīng)的節(jié)點(diǎn)
       * 
    @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 閱讀(1179) 評(píng)論(1)  編輯  收藏 所屬分類: 算法數(shù)據(jù)結(jié)構(gòu)

    評(píng)論

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

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

    sitinspring(http://www.tkk7.com)原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處.
    主站蜘蛛池模板: 国产免费直播在线观看视频| 中文字幕免费在线看电影大全| 亚洲av成人一区二区三区| 亚洲福利在线观看| 亚洲综合精品香蕉久久网| 亚洲精品无码99在线观看| 亚洲福利精品电影在线观看| 国产无遮挡吃胸膜奶免费看视频| 免费特级黄毛片在线成人观看| 三年片在线观看免费观看高清电影 | 99爱在线精品免费观看| 1000部拍拍拍18勿入免费凤凰福利 | 亚洲中文字幕人成乱码| 亚洲一区中文字幕在线观看| 亚洲一卡2卡3卡4卡国产网站 | 精品亚洲一区二区三区在线播放| 中文字幕亚洲日本岛国片| 久久亚洲精品无码播放| 亚洲啪啪综合AV一区| 亚洲av午夜成人片精品网站 | 亚洲成A人片在线观看无码3D | 中文字幕无码不卡免费视频| 一个人看的www在线观看免费 | 99re在线精品视频免费| 亚洲人成免费网站| 成人免费视频观看无遮挡| 日产乱码一卡二卡三免费| gogo全球高清大胆亚洲| 国产AⅤ无码专区亚洲AV| 亚洲avav天堂av在线不卡| 亚洲色成人网一二三区| 在线亚洲高清揄拍自拍一品区| 亚洲国产精品99久久久久久| 国产亚洲日韩在线a不卡| 亚洲精品视频免费| 无码av免费网站| 国产免费看JIZZ视频| xvideos亚洲永久网址| 亚洲人成色77777| 亚洲另类视频在线观看| 免费观看亚洲人成网站|