队列ADT

来源:互联网 发布:最新挣钱软件 编辑:程序博客网 时间:2024/06/05 08:27

像栈一样,队列是一种操作受限制的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(back)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。

队列是一种FIFO(先进先出)表。下面简单介绍队列的两种实现。

1. 顺序队列

对于每一个队列数据结构。我们保留一个疏则theArray以及位置front和back,它们代表队列的两端。我们还要记录实际存在于队列中的元素的个数currentSize。

为使某一个元素x入队(enqueue),我们让currentSize和back增1。然后置theArray[back] = x。若使元素出队(dequeue),我们置返回值为theArray[front],且currentSize减1,然后使front增1。如下图所示

这里写图片描述

这里写图片描述

这里写图片描述

2. 循环队列

简单的实现方式是,只要front或back到达数组的尾部,它就又绕回到开头。如下图所示。

这里写图片描述

这里写图片描述

这里写图片描述

0 0
原创粉丝点击