在DevC++环境下。如果用一个数组q[0..m-1]表示循环队列,则该队列只有一个队列头指针 front,不设队列尾指针rear,而改设计数器count,用以记录队列中元素的个数。 (1)编写入队列算法。 (2)此种队列能容纳元素的最大个数是多少?
时间: 2024-05-03 09:19:23 浏览: 122
设一循环队列Queue,只有头指针front,不设尾指针,另设一个内含元素个数的计数器,试写出相应的进队、出队算法。
1. 入队算法:
```c++
void enqueue(int q[], int& front, int& count, int m, int x) {
if (count == m) { // 队列已满
cout << "Queue is full!" << endl;
return;
}
q[(front + count) % m] = x; // 计算插入位置并赋值
count++; // 元素个数加1
}
```
2. 最大容量为 m-1,因为队列中必须留出一个位置作为判断队列已满的标志。如果队列中元素个数为 m-1,再添加一个元素就会导致队列满。
阅读全文