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;
}