数据结构与算法(五)——队列的顺序存储结构

队列的定义:

像栈一样,队列(queue)也是表。使用队列插入在一端进行删除则在另一端进行。比如说键盘进行字母或数字的输入,到显示器上如记事本上输出,其实这就是队列的应用。
队列是只允许在一端进行插入操作,而在另一端删除的线性表。
队列是一种先进先出的线性表,简称FIFO
允许插入的一端是队尾,允许删除的一端是队头。
队列的基本操作是enqueue(人队),它是在表的末端(叫作队尾( rear))插入一个元素,和
dequeue(出队),它是删除(并返回)在表的开头(叫作队头( front))的元素。下图显示一个队列的
抽象模型。

队列接口Queue的定义:

+int getSize() 获取队列中的元素
+boolean isEmpty() 判断队列是否为空
+void enqueue() 从队头添加一个元素
+E dequeue() 从队尾删除一个元素
+E getFront() 获取队头元素
+E getRear() 获取队尾元素
+E clear() 清空队列

package DS01.动态数组;

public interface Queue<E> extends Iterable<E>{
   
    //获取队列中元素的个数
    int getSize();
    //判断队列是否为空
    boolean isEmpty();
    //入队一个元素
    void enqueue(E e);
    //出队一个元素
    E dequeue();
    //获取队头
    E getFront();
    //获取队尾
    E getRear();
    //清空队列
    void clear();
}

队列的顺序存储结构ArrayQueue的定义:
队列的顺序存储结构——入队操作

Front和Rear一开始都指向队头的前面,此时队列为空,当进入元素是,Front不动,Rear跟随进入的元素进行++。即队尾进入元素。

队列的顺序存储结构——出队操作

从队头开始删除元素,每删除一个元素,后面的元素都向前移动,然后Front不动,Rear–。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值