看图理解基于数组的队列

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wangyangzhizhou/article/details/88098195

前言

推出一个新系列,《看图轻松理解数据结构和算法》,主要使用图片来描述常见的数据结构和算法,轻松阅读并理解掌握。本系列包括各种堆、各种队列、各种列表、各种树、各种图、各种排序等等几十篇的样子。

队列

队列(queue)是一种运算受限的线性表,通过该线性表存储的元素具有顺序性。它的插入操作只被允许在表的后端,而删除操作只被允许在表的前端。进行插入操作的端称为队尾,而进行删除操作的端则称为队头。

队列中的数据以先进先出(First In First Out,即FIFO)的方式进出队列。

队列的实现

队列的实现方式有多种方式,主要是使用不同的结构来存储队列元素,比如使用数组、单向链表、双向列表等。这里看数组方式的实现。

实现的四要素分别是数组、队头(head)指针、队尾(tail)指针以及队列操作集。其中数组用于存放元素,队头指针用于指引队头位置,队尾指针用于指引队尾位置,队列核心操作为入队和出队。此外,队列存放的元素数量不能超过数组的长度。

image

enqueue

"the","monster","is","coming"四个字符串分别进行入队操作,

image

image

image

image

dequeue

对队列中进行两次出队操作,

image

image

-------------推荐阅读------------

我的开源项目汇总(机器&深度学习、NLP、网络IO、AIML、mysql协议、chatbot)

为什么写《Tomcat内核设计剖析》

2018汇总数据结构算法篇

2018汇总机器学习篇

2018汇总Java深度篇

2018汇总自然语言处理篇

2018汇总深度学习篇

2018汇总JDK源码篇

2018汇总Java并发核心篇

2018汇总读书篇


跟我交流,向我提问:

欢迎关注:

猜你喜欢

转载自blog.csdn.net/wangyangzhizhou/article/details/88098195
今日推荐