LinkNode 类参考上一篇文章。
实现代码:
package test2;
class FirstLastList{
private LinkNode first;
private LinkNode last;
public FirstLastList(){
first = null;
last = null;
}
public void insertFirst(int iData, double dData){
LinkNode temp = new LinkNode(iData,dData);
if(first !=null ){
temp.next = first;
first = temp;
}else{
first = temp;
last = temp;
}
}
public void deleteFirst(){
if(first == null || first.next == null){//有一个元素或者没有时,均将头引用和尾引用置空;
first = null;
last = null;
return;
}else{ //否则,直接将头引用指向下一个元素;
first = first.next;
//last = ;
}
}
public void insertLast(int iData, double dData){
LinkNode temp = new LinkNode(iData, dData);
if(last != null){
last.next = temp;
last = temp;
}else{
first = temp;
last = temp;
}
}
public boolean isEmpty(){
return first == null;
}
public void displayList(){
if(first != null){
LinkNode temp = first;
System.out.println("------- ");
while(temp != null){
temp.displayLink();
temp = temp.next;
}
System.out.println("------- ");
}else{
System.out.println("displayList:null------- ");
// System.out.println("first is null ");
}
}
}
public class LinkQueue {
private FirstLastList list;
public LinkQueue(){
list = new FirstLastList();
}
public void inQueue(int iData, double dData){
list.insertLast(iData, dData);
}
public void outQueue(){
list.deleteFirst();
}
public void displayQueue(){
list.displayList();
}
}
class TestLinkQueue{
public static void main(String args[]){
LinkQueue linkq = new LinkQueue();
linkq.inQueue(1, 1);
linkq.inQueue(2, 2);
linkq.inQueue(3, 3);
linkq.displayQueue();
linkq.outQueue();
linkq.displayQueue();
linkq.outQueue();
linkq.displayQueue();
linkq.outQueue();
linkq.displayQueue();
linkq.outQueue();
linkq.displayQueue();
}
}
输出结果:
-------
iData:1 dData :1.0
iData:2 dData :2.0
iData:3 dData :3.0
-------
-------
iData:2 dData :2.0
iData:3 dData :3.0
-------
-------
iData:3 dData :3.0
-------
displayList:null-------
displayList:null-------