顺序队列的基本操作c++
时间: 2023-12-06 18:01:52 浏览: 74
顺序队列是一种基于数组实现的队列结构。以下是顺序队列的基本操作:
1. 初始化队列
```
const int MAXSIZE = 100; // 队列最大长度
typedef struct {
int data[MAXSIZE];
int front, rear; // 队头和队尾指针
} SqQueue;
void InitQueue(SqQueue &Q) {
Q.front = Q.rear = 0;
}
```
2. 判断队列是否为空
```
bool IsEmpty(SqQueue Q) {
return Q.front == Q.rear;
}
```
3. 判断队列是否已满
```
bool IsFull(SqQueue Q) {
return (Q.rear + 1) % MAXSIZE == Q.front;
}
```
4. 入队操作
```
bool EnQueue(SqQueue &Q, int x) {
if(IsFull(Q)) return false; // 队列已满,插入失败
Q.data[Q.rear] = x;
Q.rear = (Q.rear + 1) % MAXSIZE; // 队尾指针后移
return true;
}
```
5. 出队操作
```
bool DeQueue(SqQueue &Q, int &x) {
if(IsEmpty(Q)) return false; // 队列为空,删除失败
x = Q.data[Q.front];
Q.front = (Q.front + 1) % MAXSIZE; // 队头指针后移
return true;
}
```
6. 获取队头元素
```
bool GetHead(SqQueue Q, int &x) {
if(IsEmpty(Q)) return false; // 队列为空
x = Q.data[Q.front];
return true;
}
```
以上是顺序队列的基本操作,可以用来实现队列的常规操作。
阅读全文