有序链表的用途
有序链表主要用途就是用于排序,大家都知道,数组的插入排序算法,排序的时候需要大量的复制数据,这样效率就会很低,用有序链表实现无序数组的排序这样可以减少
很多次的数据的复制。效率大大提高。
package 有序链表;
public class Link {
public double dd;
public Link next;
public Link(double dd){
this.dd = dd;
}
//打印节点的方法
public void displayLink(){
System.out.print("["+dd+"]");
}
}
----------------------------------------------------------------------------------
package 有序链表;
public class SortList {
private Link first;
public SortList(){
first = null;
}
//插入节点的实现
public void insert(double dd){
Link newLink = new Link(dd);
Link current = first;
Link previous = null;
while(current != null && dd > current.dd){
previous = current;
current = current.next;
}
if(previous == null){
first = newLink;
}else{
previous.next = newLink;
}
newLink.next = current;
}
//删除节点的方法
public Link remove(){
Link temp = first;
first = first.next;
return temp;
}
//打印链表的方法的实现
public void displayList(){
Link current = first;
while(current != null){
current.displayLink();
current = current.next;
}
System.out.println();
}
}
-------------------------------------------------------------------------
package 有序链表;
public class SortListApp {
public static void main(String[] args) {
SortList theList = new SortList();
theList.insert(20);
theList.insert(50);
theList.insert(30);
theList.insert(35);
theList.insert(15);
theList.displayList();
}
}