posts - 73,  comments - 55,  trackbacks - 0
          // 建立二叉樹并先根遍歷的代碼
          public ? class ?BinaryTreeTest? {
          ?
          public ? static ? void ?main(String?args[])? { // 主方法
          ??BinaryTreeTest?b? = ? new ?BinaryTreeTest();
          ??
          int ?data[]? = ? {? 12 ,? 11 ,? 34 ,? 45 ,? 67 ,? 89 ,? 56 ,? 43 ,? 22 ,? 98 ?} ;
          ??BinaryTree?root?
          = ? new ?BinaryTree(data[ 0 ]);

          ??System.out.print(
          " 二叉樹的中的數據:   " );
          // 建立二叉樹
          ?? for ?( int ?i? = ? 1 ;?i? < ?data.length;?i ++ )? {
          ???root.insertTree(root,?data[i]);
          ???System.out.print(data[i?
          - ? 1 ]? + ? " ; " );
          ??}


          ??System.out.println(data[data.length?
          - ? 1 ]);

          ??
          int ?key? = ?Integer.parseInt(args[ 0 ]);

          ??
          if ?(b.searchkey(root,?key))? {
          ???System.out.println(
          " 找到了: " ? + ?key);
          ??}
          ? else ? {
          ???System.out.println(
          " 沒有找到: " ? + ?key);
          ??}

          ?}


          ?
          public ? boolean ?searchkey(BinaryTree?root,? int ?key)? { // 查詢
          ?? boolean ?bl? = ? false ;
          ??
          if ?(root? == ? null )? {
          ???bl?
          = ? false ;
          ???
          return ?bl;
          ??}
          ? else ? if ?(root.data? == ?key)? {
          ???bl?
          = ? true ;
          ???
          return ?bl;
          ??}
          ? else ? if ?(key? >= ?root.data)? {
          ???
          return ?searchkey(root.rightpoiter,?key);
          ??}

          ??
          return ?searchkey(root.leftpoiter,?key);
          ?}

          }


          class ?BinaryTree? { // 二叉樹類
          ? int ?data;

          ?BinaryTree?leftpoiter;

          ?BinaryTree?rightpoiter;

          ?BinaryTree(
          int ?data)? {
          ??
          this .data? = ?data;
          ??leftpoiter?
          = ? null ;
          ??rightpoiter?
          = ? null ;
          ?}


          ?
          public ? void ?insertTree(BinaryTree?root,? int ?data)? { // 插入節點
          ?? if ?(data? >= ?root.data)? {
          ???
          if ?(root.rightpoiter? == ? null )? {
          ????root.rightpoiter?
          = ? new ?BinaryTree(data);
          ???}
          ? else ? {
          ????insertTree(root.rightpoiter,?data);
          ???}

          ??}
          ? else ? {
          ???
          if ?(root.leftpoiter? == ? null )? {
          ????root.leftpoiter?
          = ? new ?BinaryTree(data);
          ???}
          ? else ? {
          ????insertTree(root.leftpoiter,?data);
          ???}

          ??}

          ?}

          }

          // ?end

          講解:一個尋找關鍵字--searchkey
          另一個是插入一個結點:insertTree
          另外這是一個完全的先序遍歷二叉樹的語法。先根結點,再左結點,如無再右結點,如些加歸至搜索完畢。??

          posted on 2007-02-27 11:41 保爾任 閱讀(409) 評論(0)  編輯  收藏 所屬分類: Arithmetic & Data Structure

          <2007年2月>
          28293031123
          45678910
          11121314151617
          18192021222324
          25262728123
          45678910

          常用鏈接

          留言簿(4)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 武隆县| 墨竹工卡县| 乡城县| 铁岭市| 陆良县| 宣恩县| 鄯善县| 综艺| 股票| 五峰| 罗源县| 永州市| 徐闻县| 蓬莱市| 岢岚县| 同德县| 麻江县| 长泰县| 搜索| 天峨县| 石柱| 泌阳县| 措勤县| 东台市| 遂宁市| 侯马市| 义马市| 新津县| 锡林郭勒盟| 鄂托克旗| 田林县| 乐业县| 广灵县| 临猗县| 苍山县| 葫芦岛市| 定陶县| 克山县| 绥棱县| 漾濞| 府谷县|