双端队列
双端队列是指允许两端都可以进行入队和出队操作的队列,其元素的逻辑结构仍是线性结构。将队列的两端分别称为前端和后端,两端都可以入队和出队。
- 定义队列接口
package com.feifan;
/**
* 队列的基本方法
* @author Donald
* 2018-12-06 22:45:04
* @param <T>
*/
public interface DoubleQueInterface <T> {
//队列头部增加元素
public void addFrist(T newEntry);
//队列头部移除元素
public T removeFrist();
//队列尾部增加元素
public void addLast(T newEntry);
//队列尾部移除元素
public T removeLast();
//队列是否为空
public boolean isEmpty();
//队列中元素的个数
public int size();
//清空队列
public void clear();
//对列头部遍历队列
public void foreachFrist();
//对列尾部遍历队列
public void foreachLast();
}
- 队列实现类
package com.feifan;
import java.io.Serializable;
public class DoubleQueueImpl<T> implements DoubleQueInterface<T> {
//队列的长度
private int size;
//队首
private NodeData headNode;
//队尾
private NodeData tailNode;
public DoubleQueueImpl() {
this.size = 0;
this.headNode = null;
this.tailNode = null;
}
//链表
private class NodeData implements Serializable{
private static final