之前咱们已经学习了数据结构的最基本的线性表的顺序存储和链式存储,以及线性表中经常使用的栈的顺序存储和链式存储,今天咱们主要学习的是队列的顺序存储,注意的地方是,队列也是线性表的一种,所以也是一对一的存在,在使用过程中,一定要主要它的特点。接下来,咱们就来看一下主要内容。
1. 定义
队列是限制在两端进行插入操作和删除操作的线性表,允许进行存入操作的一端称为“队尾”,允许进行删除操作的一端称为“队头”。当线性表中没有元素时,称为“空队”。
2. 特点
先进先出(FIFO)。
3. 队列的定义
(1)定义front指向队头元素的前一个位置,rear指向队尾元素所在位置。
(2)在队列操作过程中,为了提高效率,以调整指针代替队列元素的移动,并将数组作为循环队列的操作空间。
(3)为区别空队和满队,满队元素个数比数组元素个数少一个。
4. 顺序队列(队列的顺序存储)
它是顺序表的一种,具有顺序表同样的储存结构,由数组定义,配合用数组下标表示的队头指针和队尾指针完成各种操作。
(1)定义队列数据结构体 sequeue_t
![69fe84bb5e6e0c7cf9ede14b71c050aa.png](https://i-blog.csdnimg.cn/blog_migrate/f1f72b44409a0adc1aa51ff8ab24920f.jpeg)
(2)创建一个空的队列 sequeue_create( )
![bd8f409278200d58daefe8bd300b8e3f.png](https://i-blog.csdnimg.cn/blog_migrate/4550f021515751590678b22cd9331f76.jpeg)
(3)判断队列是否为满 sequeue_full( )
![28ba0c0f3ab1e9faa38cb59ae187eea3.png](https://i-blog.csdnimg.cn/blog_migrate/e8d61f3d65b3df01e3b4cfd74e73d59e.jpeg)
(4)判断队列是否为空 sequeue_empty( )
![eaf1bd5baa1ba500dace81edd69e2ce6.png](https://i-blog.csdnimg.cn/blog_migrate/a9b1a88ca9df1865539449ad1ab1eb86.jpeg)
(5)入队 sequeue_enter( )
![b3783bf19af11b6ebce08c8a2160c972.png](https://i-blog.csdnimg.cn/blog_migrate/5a7d6fa29a65dcc2e464c36a16d3984c.jpeg)
(6)出队 sequeue_out( )
![e41794f00803fe9be61e479c9467ca36.png](https://i-blog.csdnimg.cn/blog_migrate/869b054289448a43c0738a23bd42f5f6.jpeg)
(7)main( )
![3063e60d4557ac404888b2d181815c70.png](https://i-blog.csdnimg.cn/blog_migrate/a12faf0951e5593196a8def0794230b5.jpeg)