一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第2天,点击查看活动详情。
前言
在我们的生活场景中,当人数达到一定数量的时候,这时候现在就会有人维持秩序,让原来没有秩序的人员,排队进行某种商品的购买,这种排队的方式也让人觉得相对公平,那么生活中排队的方式抽象成我们编程语言的数据结构就是——队列,也就是一种基本的数据结构。
数据结构队列
在生活中,排队肯定有长度的,那么队列也是有对应的大小,当队列满了之后,元素就再也无法放进去了。就是抢购的商品有数量限制的,当排队的人数达到了商品的数量限制的时候,后面的人就再也没有购买资格了。也就不会去排队了。那么这样子的思路可以使用我们的数组来实现队列的这种数据结构。
我们初始化一个数组的大小,也就是队列的大小,定义一个头指针和一个尾指针,头指针指向的是队列头,尾指针指向的是队列尾部,当我们往队列里面存放元素时,队列的尾指针就会向后移动一位。当我们把队列头的元素移除一位时,队列头指针就会向后移一位。队列有两种特殊情况要判断,一个是队列为空时,我们可以定义当队列头指针和尾指针相等时,也就是指向同一个索引位置时,这时候就代表队列为空,当数组的长度和当前元素的大小一致时,我们就判断队列的元素满了。无法再存放元素了。这两种临界条件的判断会经常使用到的。
总结
队列在我们平时的开发中经常都会使用到,各种高级的编程语言都会提供内部的队列实现类,我们就开箱即用。我们的消息队列框架的基本理念也是基于队列的方式的。