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程序設計有所幫助。
您可能感興趣的文章:
相關文章
使用?EasyCode生成springboot+mybatis基礎程序的實現(xiàn)示例
本文主要介紹了使用?EasyCode生成springboot+mybatis基礎程序的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01解決springcloud啟動時報錯Connection refused:connect問題
這篇文章主要介紹了解決springcloud啟動時報錯Connection refused:connect問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05JDBC利用C3P0數(shù)據(jù)庫連接池連接數(shù)據(jù)庫
這篇文章主要為大家詳細介紹了JDBC利用C3P0數(shù)據(jù)庫連接池連接數(shù)據(jù)庫,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-08-08