这是系列文章,每篇文章末尾均附有源代码地址。目的是通过模拟集合框架的简单实现,从而对常用的数据结构和
java
集合有个大概的了解。当然实现没有java
集合的实现那么复杂,功能也没有那么强大,但是可以通过这些简单的实现窥探到底层的一些共性原理。
一. 什么是队列?
队列和栈一样也是一种特殊的线性表,队列的特殊之处在于其插入和删除分别在线性表的两端进行,插入元素称为入队(enquene
),删除元素称为出队(dequeue
),允许入队的一端称为叫做队尾(rear
),允许出队的一端叫做对头(front
);这个和我们的理解不太一样,别记反了。没有元素的队列叫做空队列。队列的入队和出队操作的示意图如下图所示:
由于队列的插入和删除操作分别在队列的队尾和对头进行,所以,最先入队的元素总是最先出队,因此队列也叫做先进先出表(First
In
First
Out
)。
二. 队列接口的定义
队列的基本操作有下面几个:
1. 创建队列
2. 判断队列是否为空
3. 入队
4. 出队
队列的接口定义如下:
package org.light4j.dataStructure.linearList.queue;
/**
* 队列接口
*
* @author longjiazuo
*/
public interface QQueue<E> {
/**
* 判断队列是否为空,若为空返回true
*
* @return
*/
boolean isEmpty();
/**
* 元素入队,操作成功返回true
*
* @param element
* @return
*/
boolean enqueue(E element);
/**
* 出队,返回当前对头元素,若队列为空则返回null
*
* @return
*/
E dequeue();
}
关于队列的实现请点击下文查看:
自己实现集合框架(十三):顺序队列的实现
自己实现集合框架(十四):顺序循环队列的实现
自己实现集合框架(十五):链式队列的实现
三.源代码示例
公众号ID:longjiazuoA

未经允许不得转载:人生设计师 » 自己实现集合框架(十二):队列接口