最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java基于二叉查找樹實(shí)現(xiàn)排序功能示例

 更新時(shí)間:2017年08月24日 12:07:23   作者:冷豪  
這篇文章主要介紹了Java基于二叉查找樹實(shí)現(xiàn)排序功能,結(jié)合實(shí)例形式分析了Java二叉查找樹的定義、遍歷及排序等相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了Java基于二叉查找樹實(shí)現(xiàn)排序功能。分享給大家供大家參考,具體如下:

/**
 * 無(wú)論排序的對(duì)象是什么,都要實(shí)現(xiàn)Comparable接口
 *
 * @param <T>
 */
public class BinaryNode<T extends Comparable<T>> {
  private static int index = 0; // 排序下標(biāo)
  private static int len = 0; // 最大數(shù)組長(zhǎng)度
  private T t; // 根節(jié)點(diǎn)
  private BinaryNode<T> left; // 左側(cè)葉子節(jié)點(diǎn)
  private BinaryNode<T> right; // 右側(cè)葉子節(jié)點(diǎn)
  public BinaryNode(T t) {
    len++;
    this.t = t;
  }
  /**
   * 往一顆書中插入值,在本質(zhì)上都通過(guò)根節(jié)點(diǎn)一層層的判斷。
   * 如果根節(jié)點(diǎn)不存在則新建節(jié)點(diǎn)
   * 如果根節(jié)點(diǎn)存在則判斷應(yīng)該在左側(cè)還是在右側(cè)插入,通常是左小右大
   * 
   * @param t
   */
  public void insert(T t) {
    if (this.t.compareTo(t) > 0) {
      if (this.left == null) {
        BinaryNode<T> node = new BinaryNode<T>(t);
        this.left = node;
      } else {
        this.left.insert(t);
      }
    } else {
      if (this.right == null) {
        BinaryNode<T> node = new BinaryNode<T>(t);
        this.right = node;
      } else {
        this.right.insert(t);
      }
    }
  }
  /**
   * 調(diào)用私有方法
   * 
   * @return
   */
  public Comparable<?>[] order() {
    Comparable<?>[] os = new Comparable[len];
    order(this, os);
    return os;
  }
  /**
   * 利用中序遍歷查找整顆樹
   * 
   * @param bn
   * @param os
   */
  private void order(BinaryNode<T> bn, Comparable<?>[] os) {
    if (bn.left == null) {
      os[index++] = bn.t;
    } else {
      order(bn.left, os);
      os[index++] = bn.t;
    }
    if (bn.right == null) {
      return;
    } else {
      order(bn.right, os);
    }
  }
}

更多關(guān)于java算法相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Java阻塞隊(duì)列必看類:BlockingQueue快速了解大體框架和實(shí)現(xiàn)思路

    Java阻塞隊(duì)列必看類:BlockingQueue快速了解大體框架和實(shí)現(xiàn)思路

    這篇文章主要介紹了Java阻塞隊(duì)列必看類:BlockingQueue快速了解大體框架和實(shí)現(xiàn)思路,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • MyBatis攔截器的實(shí)現(xiàn)原理

    MyBatis攔截器的實(shí)現(xiàn)原理

    這篇文章主要介紹了MyBatis攔截器的實(shí)現(xiàn)原理,Mybatis攔截器并不是每個(gè)對(duì)象里面的方法都可以被攔截的,其具體內(nèi)容感興趣的小伙伴課題參考一下下面文章內(nèi)容
    2022-08-08
  • Java參數(shù)傳遞實(shí)現(xiàn)代碼及過(guò)程圖解

    Java參數(shù)傳遞實(shí)現(xiàn)代碼及過(guò)程圖解

    這篇文章主要介紹了Java參數(shù)傳遞實(shí)現(xiàn)代碼及過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Java監(jiān)聽器ActionListener與MouseListener的執(zhí)行順序說(shuō)明

    Java監(jiān)聽器ActionListener與MouseListener的執(zhí)行順序說(shuō)明

    這篇文章主要介紹了Java監(jiān)聽器ActionListener與MouseListener的執(zhí)行順序說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • java dom4j解析xml用到的幾個(gè)方法

    java dom4j解析xml用到的幾個(gè)方法

    這篇文章主要介紹了java dom4j解析xml用到的幾個(gè)方法,有需要的朋友可以參考一下
    2013-12-12
  • SpringBoot日程管理Quartz與定時(shí)任務(wù)Task實(shí)現(xiàn)詳解

    SpringBoot日程管理Quartz與定時(shí)任務(wù)Task實(shí)現(xiàn)詳解

    定時(shí)任務(wù)是企業(yè)級(jí)開發(fā)中必不可少的組成部分,諸如長(zhǎng)周期業(yè)務(wù)數(shù)據(jù)的計(jì)算,例如年度報(bào)表,諸如系統(tǒng)臟數(shù)據(jù)的處理,再比如系統(tǒng)性能監(jiān)控報(bào)告,還有搶購(gòu)類活動(dòng)的商品上架,這些都離不開定時(shí)任務(wù)。本節(jié)將介紹兩種不同的定時(shí)任務(wù)技術(shù)
    2022-09-09
  • springboot獲取當(dāng)前用戶信息的三種方式

    springboot獲取當(dāng)前用戶信息的三種方式

    本文詳細(xì)介紹了在開發(fā)中獲取當(dāng)前操作用戶信息的三種方式:使用ThreadLocal存儲(chǔ)用戶信息、通過(guò)攔截器和注解結(jié)合Shiro框架獲取用戶信息、以及使用Redis存儲(chǔ)用戶信息,每種方式都有具體的實(shí)現(xiàn)步驟和注意事項(xiàng),可根據(jù)實(shí)際需求選擇合適的方法
    2024-10-10
  • Java ArrayList如何實(shí)現(xiàn)生成不重復(fù)隨機(jī)數(shù)

    Java ArrayList如何實(shí)現(xiàn)生成不重復(fù)隨機(jī)數(shù)

    這篇文章主要介紹了Java ArrayList如何實(shí)現(xiàn)生成不重復(fù)隨機(jī)數(shù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • 詳解Eclipse 字體、字號(hào)的設(shè)置、最佳字體推薦

    詳解Eclipse 字體、字號(hào)的設(shè)置、最佳字體推薦

    這篇文章主要介紹了Eclipse 字體、字號(hào)的設(shè)置、最佳字體推薦,需要的朋友可以參考下
    2020-09-09
  • SpringBoot整合ElasticSearch的示例代碼

    SpringBoot整合ElasticSearch的示例代碼

    本篇文章主要介紹了SpringBoot整合ElasticSearch的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-09-09

最新評(píng)論

上杭县| 靖州| 甘泉县| 南江县| 乌拉特中旗| 内丘县| 阜阳市| 阳信县| 金堂县| 环江| 怀化市| 乐亭县| 建瓯市| 汝州市| 祁连县| 乌兰察布市| 长海县| 宜兰县| 宝山区| 台南县| 莫力| 贡嘎县| 沙坪坝区| 英吉沙县| 滨海县| 柏乡县| 中阳县| 班戈县| 乐业县| 达尔| 内江市| 会同县| 昭苏县| 鹿邑县| 乌鲁木齐县| 稷山县| 定陶县| 龙陵县| 吉安市| 东乌| 嘉峪关市|