Java实现链队列带注释

链队列节点类

package cn.hbrj.CollectionDemo;

//链队列
public class QueueNode<T> {

	private T  pData;//元素数据
	
	private QueueNode<T>  next;
	//后继
	
	public QueueNode(){
		pData=null;
		
		next=null;
	}
	
	public QueueNode(T data){
		
		pData=data;
		next=null;
	}

	public T getpData() {
		return pData;
	}

	public void setpData(T pData) {
		this.pData = pData;
	}

	public QueueNode<T> getNext() {
		return next;
	}

	public void setNext(QueueNode<T> next) {
		this.next = next;
	}
}

链队列实现

package cn.hbrj.CollectionDemo;

/**
 * 先进先出
 * @author XuYang
 *
 * @param <T>
 */
public class ListQueue<T> {

	private QueueNode<T> mFront=null;//队头对象 (出队方便)
	private QueueNode<T> mRear=null;//队尾对象 (入队方便)
	
	private int mCount=0;//队伍的长度
	
	public boolean isEmpty(){
		return mFront==null&&mRear==null?true:false;
	}
	
	
	public int count(){
		return mCount;//获取长度的 
	}
	
	public ListQueue(){
		mFront=mRear=null;
		mCount=0;
	}
	
	//入队 队列中添加元素
	public void  eQueue(T pdata){
		//包装元素
		QueueNode<T> pnewData=new QueueNode<>(pdata);
		
		//节点放到队尾  排队
		if (isEmpty()) {
			mFront=mRear=pnewData;
			//空队列 头尾是一个节点
		}
		else {
			mRear.setNext(pnewData);
			mRear=pnewData;
			//添加新元素在队尾 更新队尾
		}
		mCount++;
	}
	
	//出队  队头的元素 出队列
	public T   dQueue(){
		if (isEmpty()) {
			System.out.println("队列空");
			return null;
		}
		else {
			//队列中有元素的时候 出的是队头元素  更新对头
			QueueNode<T>  pNode=mFront;//获取队头
			mFront=mFront.getNext();//更新
			
			mCount--;
			return pNode.getpData();
			
		}
	}
	
	//清除
	public void clear(){
		QueueNode<T> temp=mFront;
		while (temp!=null) {
			mFront=mFront.getNext();
			
			temp=null;
			temp=mFront;
		}
		mFront=mRear=null;
		
		mCount--;
		
		System.gc();//强制清除
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值