欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

/**
 * 無論排序的對象是什么,都要實現(xiàn)Comparable接口
 *
 * @param <T>
 */
public class BinaryNode<T extends Comparable<T>> {
  private static int index = 0; // 排序下標
  private static int len = 0; // 最大數(shù)組長度
  private T t; // 根節(jié)點
  private BinaryNode<T> left; // 左側葉子節(jié)點
  private BinaryNode<T> right; // 右側葉子節(jié)點
  public BinaryNode(T t) {
    len++;
    this.t = t;
  }
  /**
   * 往一顆書中插入值,在本質(zhì)上都通過根節(jié)點一層層的判斷。
   * 如果根節(jié)點不存在則新建節(jié)點
   * 如果根節(jié)點存在則判斷應該在左側還是在右側插入,通常是左小右大
   * 
   * @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);
    }
  }
}

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

希望本文所述對大家java程序設計有所幫助。

相關文章

  • java多線程編程之使用Synchronized塊同步變量

    java多線程編程之使用Synchronized塊同步變量

    我們可以通過synchronized塊來同步特定的靜態(tài)或非靜態(tài)方法。要想實現(xiàn)這種需求必須為這些特性的方法定義一個類變量,然后將這些方法的代碼用synchronized塊括起來,并將這個類變量作為參數(shù)傳入synchronized塊
    2014-01-01
  • Java數(shù)據(jù)類型超詳細示例講解

    Java數(shù)據(jù)類型超詳細示例講解

    Java程序中要求參與的計算的數(shù)據(jù),必須要保證數(shù)據(jù)類型的一致性,如果數(shù)據(jù)類型不一致將發(fā)生類型的轉換。本文將通過示例詳細說說Java中數(shù)據(jù)類型的轉換,感興趣的可以了解一下
    2022-11-11
  • 淺談Java中的interface應用與面向接口編程

    淺談Java中的interface應用與面向接口編程

    這篇文章主要介紹了淺談Java中的interface應用與面向接口編程,Java的關鍵字interface應用,一個接口,多個實現(xiàn)類,面向接口編程,把業(yè)務邏輯線提取出來作為接口,具體的業(yè)務實現(xiàn)通過該接口的實現(xiàn)類來完成,需要的朋友可以參考下
    2023-10-10
  • Java Cache詳解及簡單實現(xiàn)

    Java Cache詳解及簡單實現(xiàn)

    這篇文章主要介紹了 Java Cache詳解及簡單實現(xiàn)的相關資料,需要的朋友可以參考下
    2017-02-02
  • mybatis foreach標簽的使用詳解

    mybatis foreach標簽的使用詳解

    這篇文章主要介紹了mybatis foreach標簽的使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-06-06
  • SpringBoot請求參數(shù)傳遞與接收說明小結

    SpringBoot請求參數(shù)傳遞與接收說明小結

    這篇文章主要介紹了SpringBoot請求參數(shù)傳遞與接收,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12
  • SpringBoot中的自動裝配原理解析

    SpringBoot中的自動裝配原理解析

    這篇文章主要介紹了SpringBoot中的自動裝配原理解析,自動裝配就是指 Spring 容器在不使用<constructor-arg>和<property>標簽的情況下,可以自動裝配(autowire)相互協(xié)作的Bean之間的關聯(lián)關系,將一個 Bean注入其他Bean的Property中,需要的朋友可以參考下
    2023-08-08
  • 使用?EasyCode生成springboot+mybatis基礎程序的實現(xiàn)示例

    使用?EasyCode生成springboot+mybatis基礎程序的實現(xiàn)示例

    本文主要介紹了使用?EasyCode生成springboot+mybatis基礎程序的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 解決springcloud啟動時報錯Connection refused:connect問題

    解決springcloud啟動時報錯Connection refused:connect問題

    這篇文章主要介紹了解決springcloud啟動時報錯Connection refused:connect問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • JDBC利用C3P0數(shù)據(jù)庫連接池連接數(shù)據(jù)庫

    JDBC利用C3P0數(shù)據(jù)庫連接池連接數(shù)據(jù)庫

    這篇文章主要為大家詳細介紹了JDBC利用C3P0數(shù)據(jù)庫連接池連接數(shù)據(jù)庫,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08

最新評論