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();
}
}