循环队列入队出队pta
时间: 2023-06-23 12:55:18 浏览: 211
数据结构和算法应用循环队列入队出队.cpp
5星 · 资源好评率100%
循环队列是一种环形的队列结构,可以在数组上实现。入队和出队的操作需要注意队列空间的循环利用。
入队操作可以分为两个步骤:
1. 首先判断队列是否已满,如果满了则不能再插入元素;
2. 如果队列未满,则将元素插入到队尾,并将队尾指针向后移动一位。
出队操作也分为两个步骤:
1. 首先判断队列是否为空,如果为空则不能再弹出元素;
2. 如果队列非空,则将队头元素弹出,并将队头指针向后移动一位。
以下是一个循环队列的示例代码,其中 n 表示队列的容量,front 和 rear 分别表示队头和队尾指针:
```c++
#include <iostream>
using namespace std;
const int N = 100010;
int q[N], n, front, rear;
void push(int x)
{
if ((rear + 1) % n == front) return; // 队列已满
q[rear++] = x;
rear %= n; // 队尾指针向后移动一位
}
void pop()
{
if (front == rear) return; // 队列为空
front++;
front %= n; // 队头指针向后移动一位
}
int main()
{
cin >> n;
int m;
cin >> m;
while (m--)
{
int op;
cin >> op;
if (op == 1)
{
int x;
cin >> x;
push(x);
}
else if (op == 2)
{
pop();
}
else if (op == 3)
{
cout << q[front] << endl;
}
}
return 0;
}
```
这段代码中,op 表示操作类型,1 表示入队,2 表示出队,3 表示查询队头元素。
阅读全文