Java双端链表实现队列

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------- 

 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值