队列
队列是只允许在一端进行插入操作而在另一端进行删除操作的线性表 允许插入的一端为队尾,允许插入的一端为队头(注:队列是一种先进先出线性表)
队列的基本操作是入队和出队;入队在表的末端插入一个元素,出队删除表头的元素并返回。
队列的数组实现:
对于数组的实现首先需要一个头指针,尾指针。一个数组,和数组中元素的个数。表示队列的状态。
队列的顺序存储结构 —入队操作O(1)
当队列为空时,队头和队尾的指针指向同一个位置。
队列的操作
对列的抽象数据类型
Queue
Data 元素具有相统的类型。并且相邻元素之间有前驱和后继关系(队头和队尾外)
创建空队列;
销毁队列;
请空队列;
队列是否为空;
出队操作;
入队操作
队列的长度。
队列接口的实现
public interface Queue<E> {
public int getSize();
public boolean isEmpty();
public void clear();
/**
* 入队一个新元素e
* @param e
*/
public void enqueue(E e);
/**
* 出队一个元素e
* @return
*/
public E dequeue();
/**
* 得到队头元素
* @return
*/
public E getFront();
/**
* 得到队尾元素
* @return
*/
public E getRear();
}
队列的实现:
//队列
import com.openlab.line.ArrayList;
public class ArrayQueue<E> implements Queue<E> {
private ArrayList<E> list;
public ArrayQueue() {
list = new ArrayList<E>