已知循环队列的存储空间大小为20,且当前队列的头指针和尾指针的值分别为8和3,且该队列的当前的长度为____。
时间: 2024-03-05 22:51:04 浏览: 336
循环队列的长度可以通过如下公式计算:
```
(rear - front + M) % M
```
其中,`rear` 表示队尾指针,`front` 表示队头指针,`M` 表示循环队列的存储空间大小。
根据题意,循环队列的存储空间大小为20,队头指针为8,队尾指针为3,代入公式得:
```
(3 - 8 + 20) % 20 = 15
```
因此,该队列的当前长度为15。
相关问题
14.已知循环队列Q[MaxSize],队头指针为f,队尾指针为r,则队列满的条件是 ;队列的长度为 。
循环队列中,队尾指针r指向的位置是下一次插入操作的位置,队头指针f指向的是下一次删除操作的位置。因此,当队列中的元素个数为MaxSize-1时,队列就已经满了。即队列满的条件为:
```
(r+1) % MaxSize == f
```
队列的长度为:
```
length = (r - f + MaxSize) % MaxSize
```
其中,%表示取模运算,MaxSize为循环队列的最大容量。
数组q[M](M等于6)存储一个循环队,first和last分别是首尾指针。已知first和last的当前值分别等于2和4,且q[5]存放的是队尾元素。当从队列中删除两个元素,再插入三个元素后,first的值为 4 ,last的值为 1 。
根据题目描述,我们可以得到以下信息:
初始状态:
- q[M]数组存储循环队列,M等于6。
- first的初始值为2,表示指向队列的第3个元素。
- last的初始值为4,表示指向队列的第5个元素。
- q[5]存放的是队尾元素。
删除两个元素后:
- 删除两个元素后,队列中的元素个数减少了2个。
- 原来的first位置上的元素被删除,first的值需要更新。
- first的值更新为4,表示指向队列的第5个元素。
插入三个元素后:
- 插入三个元素后,队列中的元素个数增加了3个。
- 插入的元素依次放置在last的下一个位置,last的值需要更新。
- last的值更新为1,表示指向队列的第2个元素。
综上所述,删除两个元素后,再插入三个元素后,first的值为4,last的值为1。
阅读全文