Java 如何对一组链接节点进行排序
我试图在java中对一组链接节点进行排序。 我刚开始编程,所以我不确定我做错了什么Java 如何对一组链接节点进行排序,java,list,sorting,linked-list,nodes,Java,List,Sorting,Linked List,Nodes,我试图在java中对一组链接节点进行排序。 我刚开始编程,所以我不确定我做错了什么 package rAymond; public class RandomLinkLists { public static void main(String[] args) { int temp = 0; Listnode holder; Listnode start; Listnode a; Listnode b;
package rAymond;
public class RandomLinkLists {
public static void main(String[] args) {
int temp = 0;
Listnode holder;
Listnode start;
Listnode a;
Listnode b;
Listnode c;
Listnode d;
Listnode e;
Listnode end;
start = new Listnode(5);
a = new Listnode(10);
b = new Listnode(0);
c = new Listnode(3);
d = new Listnode(4);
e = new Listnode(100);
end = new Listnode(20);
holder = new Listnode(0);
start.setNext(a);
a.setNext(b);
b.setNext(c);
c.setNext(d);
d.setNext(e);
e.setNext(end);
holder.setNext(start);
while(start!=null && start.getNext()!=null){
if((Integer)start.getData() > (Integer)start.getNext().getData()){
temp = (Integer) start.getData();
start.setData(start.getNext().getData());
start.getNext().setData(temp);
}
start = start.getNext();
}
while(holder != null && holder.getNext()!=null){
System.out.println(holder.getData());
holder = holder.getNext();
}
}
}
而且
package rAymond;
public class Listnode {
//*** fields ***
private Object data;
private Listnode next;
private Listnode previous;
//*** methods ***
// 2 constructors
public Listnode(Object d) {
this(d, null);
}
public Listnode(Object d, Listnode n) {
data = d;
next = n;
}
// access to fields
public Object getData() {
return data;
}
public Listnode getPrevious(){
return previous;
}
public Listnode getNext() {
return next;
}
// modify fields
public void setData(Object ob) {
data = ob;
}
public void setNext(Listnode n) {
next = n;
}
public void setPrevious(Listnode n) {
previous = n;
}
public void remove(Listnode current, Listnode parent){
parent.setNext(current.getNext());
}
}
任何帮助都将不胜感激
最终输出为:050341020
还有,有没有更简单的方法对列表进行排序?普通的数组排序技术,如冒泡排序和快速排序,可以在这里应用吗?面向随机访问的排序算法对于链表来说很难使用。一种简单的方法是创建一个空列表,然后从原始列表中删除节点,并按顺序将它们插入最初的空列表中 一种更快的方法是使用一个指向节点的小数组引用(或指针)和一种自下而上合并排序的变体。维基文章: