队列ADT

Posted 陈东

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了队列ADT相关的知识,希望对你有一定的参考价值。

  像栈一样,队列也是表,然而,使用队列时插入在一段进行,而删除则在另一端上进行

队列模型

  队列的基本模型是 入队(就是添加元素),它是在表的末端(叫做队尾)插入一个元素,和出队,它是删除并返回 在表的开头也叫队头的元素,

<----出队(删除并返回)-----[ 头   队列    尾 ]<--------入队(末端插入)-------

队列的数组实现

  如同栈的情形一样,对于队列而言任何的表的实现都是合法的,像栈一样,对于每一种操作,链表实现和数组实现都给出快速的O(1)时间,个人觉得数组是偏慢的 因为在头部删除元素  是要进行一次后面的元素 整体向前挪一个位置的,与之相比 链表实现的队列 删除表头与在尾部添加数据 真的都是 O(1)时间,最为直接,

然后我们先来讨论下数组的实现,

  对于每一个队列数组结构,我们保留一个数组theArray 以及位置 front和back ,它们代表队列的两端,我们还要巨鹿实际存在队列当中元素的个数,currentSize,

 

  

以上是关于队列ADT的主要内容,如果未能解决你的问题,请参考以下文章

队列的ADT

双端队列 ADT接口 数组实现

FIFO队列 ADT接口 数组实现

[数据结构-严蔚敏版]P61ADT Queue的表示与实现(单链队列-队列的链式存储结构)

双端队列 ADT接口 链表实现

为具有可变元素的优先级队列确定最佳 ADT (C++)