队列的顺序存储结构的代码
时间: 2024-06-13 19:06:56 浏览: 12
以下是队列的顺序存储结构的代码:
```c
#define MaxSize 50 // 定义队列的最大长度
typedef struct {
ElemType data[MaxSize]; // 存放队中元素
int front, rear; // 队首和队尾指针
} SqQueue;
// 初始化队列
void InitQueue(SqQueue &Q) {
Q.front = Q.rear = 0; // 队首和队尾指针置为0,表示队列为空
}
// 判断队列是否为空
bool QueueEmpty(SqQueue Q) {
if (Q.front == Q.rear) {
return true;
} else {
return false;
}
}
// 判断队列是否已满
bool QueueFull(SqQueue Q) {
if ((Q.rear + 1) % MaxSize == Q.front) {
return true;
} else {
return false;
}
}
// 入队操作
bool EnQueue(SqQueue &Q, ElemType x) {
if (QueueFull(Q)) {
return false; // 队列已满,入队失败
} else {
Q.data[Q.rear] = x; // 将元素x插入队尾
Q.rear = (Q.rear + 1) % MaxSize; // 队尾指针后移一位
return true; // 入队成功
}
}
// 出队操作
bool DeQueue(SqQueue &Q, ElemType &x) {
if (QueueEmpty(Q)) {
return false; // 队列为空,出队失败
} else {
x = Q.data[Q.front]; // 将队首元素赋值给x
Q.front = (Q.front + 1) % MaxSize; // 队首指针后移一位
return true; // 出队成功
}
}
```