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