java樹排序
❶ 找一個java程序:關於二叉樹的建立和排序
從鍵盤接受輸入(先序),以二叉鏈表作為存儲結構,建立二叉樹(以先序來建立)
結果不是唯一
❷ JAVA如何將英文字母進行二叉樹排序
如果僅限於java,而且是實際應用,java里有一個叫做TreeSet的東西,是個有序的樹結構。Sring類型的英文字元可在裡面自排序。
如果是考試,應該是靠你如何實現一個類似於TreeSet的東西
❸ 計算機C語言數據結構javaIT二叉排序樹的構造
字元串的大小是逐字元比較,比較字元的ascii碼。
排序樹,可以是左樹比根節點大,右樹比它小,或者反過來也行。這樣就是有序的,可以從根開始查找串。
❹ java二叉排序樹問題
給分!!!!!!:....還行不難寫....其實我很懷念學C時寫樹......
class TreeNode 數據結構
class SortTree 實現樹的建立 和 中序遍歷
public class TreeNode
{
public TreeNode left;
public TreeNode right;
public Integer value;
TreeNode ( Integer value )
{
this.value = value;
System.out.println(value);
}
}
public class SortTree
{
SortTree(Integer...integers)
{
createSortTree(integers);
}
private TreeNode root;
private void createSortTree(Integer[] integers)
{
for(Integer nodeValue:integers)
{
if(root == null)
{
System.out.println("Create Root");
root = new TreeNode(nodeValue);
}
else if(root.value > nodeValue)
{
insertLeft(root , nodeValue);
}
else
{
insertRight(root , nodeValue);
}
}
}
private void insertLeft(TreeNode root2, Integer nodeValue)
{
if(root2.left == null)
{
System.out.println("Create Left");
root2.left = new TreeNode(nodeValue);
}
else if(root2.left.value > nodeValue)
{
insertLeft(root2.left,nodeValue);
}
else
{
insertRight(root2.left,nodeValue);
}
}
private void insertRight(TreeNode root2, Integer nodeValue)
{
if(root2.right == null)
{
System.out.println("Create Right");
root2.right = new TreeNode(nodeValue);
}
else if(root2.right.value > nodeValue)
{
insertLeft(root2.right,nodeValue);
}
else
{
insertRight(root2.right,nodeValue);
}
}
private void middleTraversing(TreeNode root)
{
if(root.left !=null) /** 第一步訪問左子樹 */
middleTraversing(root.left);
System.out.println(root.value); /** 第二步訪問根結點 */
if(root.right !=null)
middleTraversing(root.right); /** 第三步訪問右子樹 */
}
public TreeNode getRoot()
{
return root;
}
public static void main (String[] args)
{
SortTree tree = new SortTree(new Integer(5),new Integer(6),new Integer(4),new Integer(3),new Integer(7));
System.out.println("MiddleTraversing:");
tree.middleTraversing(tree.getRoot());
}
}
❺ java二叉排序樹,已有代碼,如何調通輸出
你好,很高興回答你的問題。
目前已經有了二叉樹以及二叉樹節點的類。
需要一個main方法,在其中創建節點(通過節點類的構造方法),構建樹(通過樹的構造方法以及insert方法)。可以執行查詢的方法以及展示的方法。
如果有幫助到你,請點擊採納。
❻ java二叉樹排序問題
importjava.util.TreeSet;
publicclassStudentTest{
publicstaticvoidmain(String[]args){
TreeSet<Student>ts=newTreeSet<>();
for(;ts.size()<10;){
Stringname="同學"+(char)((Math.round(Math.random()*26+65)));
intid=(int)(Math.round(Math.random()*80+10));
floatfl=(int)Math.floor(Math.random()*50+40);
ts.add(newStudent(name,fl,id));
}
for(Studenta:ts){
System.out.println(a);
}
}
}
<Student>{
privateStringname;
privateFloathp;
privateintid;
publicStudent(Stringname,floathp,intid){
this.name=name;
this.hp=hp;
this.id=id;
}
publicStringtoString(){
return"(name:"+name+"id:"+id+"hp:"+hp+")";
}
publicintgetId(){
returnid;
}
publicintcompareTo(Studentstu){
returnInteger.compare(this.id,stu.getId());
}
}
❼ java實現對樹形結構(文件夾式)數據數組進行排序
這個問題本質上就是個數據結構的問題,所謂排序和查找效率依賴的是演算法和數據結構的配合,你現在定下了鏈表(沒有具體說明的話,這里應該指的是單向鏈表吧)、數組和二叉樹,這幾個之中,那排序和查找的數據就看用什麼演算法和相應的數據結構配合了~~~
排序演算法中,快速排序是最快的,比較適合用鏈表來處理,但是鏈表的查找是比較慢的(雙向鏈表的話可以加快查找速度)。
數組排序會比較慢,不是演算法的問題,而是數組的調整因為需要位移,但是數組一旦排號順序後,查找是很快的——折半查找。
二叉數較為平局,排序可以採用堆排序,查找可以建二叉排序樹來找(用B+或B-樹的話可以更快)。
個人看法,不一定對,歡迎拍磚,具體代碼知道演算法了就自己上網找吧。
❽ 如何在java中創建二叉排序樹
試試這些代碼:
private BinaryNode<T> remove(T x,BinaryNode<T> p,BinaryNode<T> parent){
if(p==null){
return null;
}
if(x.compareTo(p.data)>0){
return remove(x,p.left,p);
}
if(x.compareTo(p.data)<0){
return remove(x,p.right,p);
}
if(p.left!=null&&p.right!=null){
BinaryNode<T> insucc=p.right;
while(insucc.left!=null){
insucc=insucc.left;
}
p.data=insucc.data;
return remove(p.data,p.right,p);
}
if(parent==null){
if(p.left!=null){
root=p.left;
}
else root=p.right;
return p;
}
if(p==parent.left){
if(p.left!=null){
parent.left=p.left;
}
else{
parent.left=p.right;
}
}
else{
if(p.left!=null){
parent.right=p.left;
}
else{
parent.right=p.right;
}
}
return p;
}