夢(mèng)幻之旅

          DEBUG - 天道酬勤

             :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            671 隨筆 :: 6 文章 :: 256 評(píng)論 :: 0 Trackbacks
          public class MyBinaryTree
          {
              
          private MyNode root;// 根節(jié)點(diǎn)
              private MyBinaryTree left;// 左子樹(shù)
              private MyBinaryTree right;// 右子樹(shù)
              
              
          /**
               * 添加一個(gè)數(shù) 將數(shù)值插入到二叉樹(shù)中,比當(dāng)前結(jié)點(diǎn)小或等于當(dāng)前結(jié)點(diǎn)的插在當(dāng)前結(jié)點(diǎn)的左側(cè),比當(dāng)前結(jié)點(diǎn)大的數(shù)插在當(dāng)前結(jié)點(diǎn)的右側(cè),每次從根結(jié)點(diǎn)開(kāi)始遞歸比較
               
          */

              
          public void addData(int n)
              
          {
                  
          if (root == null)
                  
          {
                      root 
          = new MyNode();
                      root.setData(n);
                  }

                  
          else
                  
          {
                      
          int data = root.getData();
                      
          if (n <= data)
                      
          {
                          
          if (this.left == null)
                          
          {
                              
          this.left = new MyBinaryTree();
                          }

                          
          this.left.addData(n);
                      }

                      
          else
                      
          {
                          
          if (this.right == null)
                          
          {
                              
          this.right = new MyBinaryTree();
                          }

                          
          this.right.addData(n);
                      }

                  }

              }

              
              
          /**
               * 先序排序
               
          */

              
          public void preorder()
              
          {
                  
          if (this.root != null)
                  
          {
                      System.out.print(root.getData() 
          + ",");
                  }

                  
          if (this.left != null)
                  
          {
                      
          this.left.preorder();
                  }

                  
          if (this.right != null)
                  
          {
                      
          this.right.preorder();
                  }

              }

              
              
          /**
               * 中序排序
               
          */

              
          public void inorder()
              
          {
                  
          if (this.left != null)
                  
          {
                      
          this.left.inorder();
                  }

                  
          if (this.root != null)
                  
          {
                      System.out.print(root.getData() 
          + ",");
                  }

                  
          if (this.right != null)
                  
          {
                      
          this.right.inorder();
                  }

              }

              
              
          /**
               * 后序排序
               
          */

              
          public void postorder()
              
          {
                  
          if (this.left != null)
                  
          {
                      
          this.left.postorder();
                  }

                  
          if (this.right != null)
                  
          {
                      
          this.right.postorder();
                  }

                  
          if (this.root != null)
                  
          {
                      System.out.print(root.getData() 
          + ",");
                  }

              }

              
              
          public static void main(String[] args)
              
          {
                  
          int[] arr = 28749316,0,5 };
                  MyBinaryTree bt 
          = new MyBinaryTree();
                  
          for (int i = 0; i < arr.length; i++)
                  
          {
                      bt.addData(arr[i]);
                  }

                  System.out.println(
          "先序:");
                  bt.preorder();
                  System.out.println(
          "\n中序:");
                  bt.inorder();
                  System.out.println(
          "\n后序:");
                  bt.postorder();
              }

              
          }


          /**
           * 節(jié)點(diǎn)對(duì)象
           
          */

          class MyNode
          {
              
          /** 存儲(chǔ)的數(shù)據(jù) */
              
          private int data;
              
              
          public int getData()
              
          {
                  
          return data;
              }

              
              
          public void setData(int data)
              
          {
                  
          this.data = data;
              }

          }
          posted on 2014-07-12 20:49 HUIKK 閱讀(675) 評(píng)論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 台东县| 青田县| 马龙县| 亚东县| 百色市| 博白县| 临漳县| 苍溪县| 乌兰察布市| 山西省| 德兴市| 波密县| 铜梁县| 苍溪县| 江永县| 娱乐| 通渭县| 孟村| 桓仁| 庐江县| 昌邑市| 天台县| 武义县| 孟村| 宣城市| 额尔古纳市| 封丘县| 页游| 金堂县| 张家口市| 瑞丽市| 金湖县| 县级市| 泰宁县| 海口市| 阳城县| 盐城市| 南安市| 五莲县| 兴国县| 鲁山县|