对于循环队列,假设队中所有元素为数字字符,利用循环队列的基本运算求循环队列元素个数的算法,删除其中所有奇数字符元素
时间: 2024-04-30 07:23:31 浏览: 91
算法如下:
1. 初始化计数器count为0,队列头指针front为0,队列尾指针rear为0。
2. 将所有元素依次入队,每入队一个元素count加1,rear指针后移一位。
3. 循环执行以下步骤,直到队列为空:
1. 判断队头元素是否为奇数字符,如果是则直接出队,不计数,front指针后移一位。
2. 如果队头元素不是奇数字符,则计数器count加1,队头元素出队,front指针后移一位。
4. 返回计数器count,即为循环队列中的元素个数。
代码实现如下(假设队列元素类型为char):
```c++
int count = 0; // 初始化计数器
while (front != rear) { // 队列不为空时循环
if (queue[front] % 2 == 1) { // 如果队头元素为奇数字符
front = (front + 1) % MAXSIZE; // 直接出队,front指针后移一位
} else { // 如果队头元素不是奇数字符
count++; // 计数器加1
front = (front + 1) % MAXSIZE; // 队头元素出队,front指针后移一位
}
}
return count; // 返回计数器值,即为循环队列中的元素个数
```
阅读全文