我在排序链接列表时遇到问题,任何人都可以帮助我并让我知道我做错了什么吗? 我需要对其进行排序并将其放入列表中。 如果您能给我一些指示,以使用新方法 public void print() 在末尾打印列表。
public class SortedLinkedList<T extends Comparable<? super T>>
extends LinkedList<T>
{
private LinkedList<T> list; //the sorted list
//the constructor
public SortedLinkedList(LinkedList<T> in)
{
if(in.isEmpty())
{
System.out.println("Empty list");
}
else
{
LinkedList<T> first = new LinkedList<T>(in.subList(0, in.size()/2));
LinkedList<T> second = new LinkedList<T>(in.subList(in.size ()/2,in.size()));
LinkedList<T> sortList = new LinkedList<T>();
int i = 0;
int j = 0;
while(i<first.size() && j<second.size())
{
if(first.get(i).equals(second.get(j)) || first.get(i).compareTo(second.get(j))<0)
{
sortList.add(first.get(i));
i++;
}
else
{
sortList.add(second.get(j));
j++;
}
if(i == first.size())
{
for(int k = j; k<second.size(); k++)
{
sortList.add(second.get(k));
}
}
else
{
for(int x = i; x<first.size(); x++)
{
sortList.add(first.get(x));
}
}
}
}
}
}
最佳答案
在编写自己的排序之前尝试 Collections.sort 。如果您需要自己的排序顺序,请使用比较器。
一些补充:在大多数情况下,LinkedList 是错误的数据结构 - 特别是需要对其进行排序时。
关于java - 对链表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7894860/