Java数据结构——有序链表

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

}

 

posted @ 2016-03-30 22:09  tonglin0325  阅读(269)  评论(0编辑  收藏  举报