1. package com.tw.dst.link;  
  2.  
  3. /**  
  4.  * <p>链表学习(二):双端链表</p>  
  5.  * @author tangw 2010-12-07  
  6.  *  
  7.  */ 
  8. public class FirstLastLink {  
  9.     private Link first; //第一个链表引用  
  10.     private Link last; //最后一个链表引用  
  11.       
  12.     //判断是否为空  
  13.     public boolean isEmpty(){  
  14.         return (first==null);  
  15.     }  
  16.     //在表前插入一个链结点  
  17.     public void insertFirst(int id,double dd){  
  18.         Link newLink = new Link(id,dd);  
  19.         if(this.isEmpty()){  
  20.             last = newLink;  
  21.         }  
  22.         newLink.next = first;  
  23.         first = newLink;   
  24.     }  
  25.     //在表尾插入一个链结点  
  26.     public void insertLast(int id,double dd){  
  27.         Link newLink = new Link(id,dd);  
  28.         if(this.isEmpty()){  
  29.             first = newLink;  
  30.         }  
  31.         last.next = newLink;  
  32.         last = newLink;   
  33.     }  
  34.       
  35.     //删除第一个链结点  
  36.     public Link deleteFirst(){  
  37.         Link temp = first;  
  38.         if(first == null){  
  39.             last  = null;  
  40.         }  
  41.         first = first.next;  
  42.         return temp;  
  43.     }  
  44.       
  45.     //输出链表数据  
  46.     public void displayList(){  
  47.         System.out.println("list (first-->last)");  
  48.         Link current = first;  
  49.         while(current!=null){  
  50.             current.displayLink();  
  51.             current =current.next;  
  52.         }  
  53.         System.out.println("");  
  54.     }  
  55.  
  56.     /**  
  57.      * @param args  
  58.      */ 
  59.     public static void main(String[] args) {  
  60.         //----1---插入  
  61.         FirstLastLink linkList = new FirstLastLink();  
  62.         linkList.insertFirst(222.99);  
  63.         linkList.insertFirst(444.99);  
  64.         linkList.insertFirst(666.99);  
  65.           
  66.         linkList.displayList();  
  67.         //---2---删除  
  68.         Link aLink = linkList.deleteFirst();  
  69.         linkList.displayList();  
  70.  
  71.     }  
  72.  
  73. }