1. 程式人生 > >java版資料結構與演算法—有序連結串列

java版資料結構與演算法—有序連結串列

package com.zoujc.sortLink;

/**
 * 有序連結串列
 */
class Link {
    public int dData;
    public Link next;
    public Link(int dd){
        dData = dd;
    }
    public void display(){
        System.out.print(dData + " ");
    }
}
class SortedLink{
    public Link first;
    public SortedLink(){
        first =
null; } public SortedLink(Link[] linkArr){ first = null; for (int i=0;i<linkArr.length;i++){ insert(linkArr[i]); } } public void insert(Link k){ Link previous = null; Link current = first; while (current != null &&
k.dData > current.dData){ previous = current; current = current.next; } if(previous == null){ first = k; }else { previous.next = k; } k.next = current; } public Link remove(){ Link temp = first;
first = first.next; return temp; } public void display(){ System.out.print("List:"); Link current = first; while (current != null){ current.display(); current = current.next; } System.out.println(); } } class LinkInsertionSortApp{ public static void main(String[] args){ int size = 10; Link[] links = new Link[size]; for (int i=0;i<size;i++){ int n = (int) (Math.random()*99); Link link = new Link(n); links[i] = link; } System.out.print("未排序:"); for (int i=0; i<size;i++){ System.out.print(links[i].dData + " "); } System.out.println(""); SortedLink sortedLink = new SortedLink(links); sortedLink.display(); System.out.print("按順序刪除:"); for (int i=0;i<size;i++){ links[i] = sortedLink.remove(); } for (int i=0; i<size;i++){ System.out.print(links[i].dData + " "); } System.out.println(""); } }

在這裡插入圖片描述