但行好事  莫问前程

自己实现集合框架(十二):队列接口

这是系列文章,每篇文章末尾均附有源代码地址。目的是通过模拟集合框架的简单实现,从而对常用的数据结构和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();
}

关于队列的实现请点击下文查看:
自己实现集合框架(十三):顺序队列的实现
自己实现集合框架(十四):顺序循环队列的实现
自己实现集合框架(十五):链式队列的实现

三.源代码示例

github地址:点击查看
码云地址:点击查看

打赏
欢迎关注人生设计师的微信公众账号
公众号ID:longjiazuoA

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

分享到:更多 ()

人生设计师-接受不同的声音

联系我关于我