java 實現有序單鏈表
阿新 • • 發佈:2019-09-28
package com.mylink;
public class Link {
public String dataStr;
public Link next;
public Link(String dataStr) {
this.dataStr = dataStr;
this.next = null;
}
public void disPlay() {
System.out.print(" {" + dataStr + "} ");
}
}
package com.mylink; public class MySortedList { private Link first; public MySortedList() { first = null; } public boolean isEmpty() { return (first == null); } /** * 插入的時候有序 *針對: 連結串列是空, 在頭部插入,在中間插入, 在尾部插入 4 中情況 * @param key */ public void insert(String key) { Link newNode = new Link(key); Link previous = null; Link current = first; while (current != null && (key.compareTo(current.dataStr) > 0)) { previous = current; current = current.next; } if(previous == null) { first = newNode; } else { previous.next = newNode; } newNode.next = current; } public Link remove() { Link temp = first; first = first.next; return temp; } public void disPlay() { System.out.println("List( first -> last ) : "); Link current = first; while (current != null) { current.disPlay(); current = current.next; } System.out.println(); } }
package com.mylink;
public class SortedListApp {
public static void main(String[] args) {
MySortedList mySortedList = new MySortedList();
mySortedList.insert("60");
mySortedList.insert("50");
mySortedList.insert("40");
mySortedList.disPlay();
mySortedList.insert("10");
mySortedList.insert("30");
mySortedList.insert("20");
mySortedList.disPlay();
mySortedList.remove();
mySortedList.disPlay();
}
}