package com.tw.dst.link;
/**
* <p>链表学习(二):双端链表</p>
* @author tangw 2010-12-07
*
*/
public class FirstLastLink {
private Link first; //第一个链表引用
private Link last; //最后一个链表引用
//判断是否为空
public boolean isEmpty(){
return (first==null);
}
//在表前插入一个链结点
public void insertFirst(int id,double dd){
Link newLink = new Link(id,dd);
if(this.isEmpty()){
last = newLink;
}
newLink.next = first;
first = newLink;
}
//在表尾插入一个链结点
public void insertLast(int id,double dd){
Link newLink = new Link(id,dd);
if(this.isEmpty()){
first = newLink;
}
last.next = newLink;
last = newLink;
}
//删除第一个链结点
public Link deleteFirst(){
Link temp = first;
if(first == null){
last = null;
}
first = first.next;
return temp;
}
//输出链表数据
public void displayList(){
System.out.println("list (first-->last)");
Link current = first;
while(current!=null){
current.displayLink();
current =current.next;
}
System.out.println("");
}
/**
* @param args
*/
public static void main(String[] args) {
//----1---插入
FirstLastLink linkList = new FirstLastLink();
linkList.insertFirst(22, 2.99);
linkList.insertFirst(44, 4.99);
linkList.insertFirst(66, 6.99);
linkList.displayList();
//---2---删除
Link aLink = linkList.deleteFirst();
linkList.displayList();
}
}