1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| class SortedList{ private Link_long first; public SortedList(){ //构造函数 first = null; } public void insert(long key){ Link_long newLink = new Link_long(key); Link_long previous = null; //上一次插入的值 Link_long current = first; //每插入一次,current就重新赋为表头的值 while(current != null && key > current.dData){ //没进入这里,pre就是null,也就只进入下面if的上一层 previous = current; current = current.next; //current的位置往后移动 } if(previous == null){ //最开始的情况,给first赋值为newLink,即key first = newLink; }else{ // previous.next = newLink; } newLink.next = current; } public long remove(){ Link_long temp = first; first = first.next; return temp.dData; } public void displayList(){ System.out.println("List (first-->last)"); Link_long current = first; while(current != null){ current.displayLink(); current = current.next; } } }
public class SortedList_demo {
public static void main(String[] args) { // TODO 自动生成的方法存根 SortedList theSortedList = new SortedList(); theSortedList.insert(10); theSortedList.insert(20); theSortedList.insert(30); theSortedList.displayList(); theSortedList.remove(); theSortedList.remove(); theSortedList.displayList(); }
}
|