循环队列的基本操作的代码实现
时间: 2023-06-11 12:04:42 浏览: 160
循环队列的基本操作和实现
4星 · 用户满意度95%
循环队列的基本操作的代码实现如下(C语言):
```
#define MAXSIZE 100 // 循环队列的最大长度
typedef struct {
int data[MAXSIZE]; // 存储队列元素的数组
int front, rear; // 队头和队尾指针
} Queue;
// 初始化循环队列
void InitQueue(Queue *q) {
q->front = q->rear = 0;
}
// 销毁循环队列
void DestroyQueue(Queue *q) {
// 无需实现
}
// 循环队列是否为空
int IsEmpty(Queue q) {
return q.front == q.rear;
}
// 循环队列是否已满
int IsFull(Queue q) {
return (q.rear+1) % MAXSIZE == q.front;
}
// 入队
int EnQueue(Queue *q, int element) {
if (IsFull(*q)) {
return 0; // 队列已满,无法入队
}
q->data[q->rear] = element;
q->rear = (q->rear+1) % MAXSIZE;
return 1; // 入队成功
}
// 出队
int DeQueue(Queue *q, int *element) {
if (IsEmpty(*q)) {
return 0; // 队列已空,无法出队
}
*element = q->data[q->front];
q->front = (q->front+1) % MAXSIZE;
return 1; // 出队成功
}
// 获取队头元素
int GetFront(Queue q, int *element) {
if (IsEmpty(q)) {
return 0; // 队列已空,无法获取队头元素
}
*element = q.data[q.front];
return 1; // 获取队头元素成功
}
// 获取队列长度
int GetSize(Queue q) {
return (q.rear - q.front + MAXSIZE) % MAXSIZE;
}
```
以上就是循环队列的基本操作的代码实现。
阅读全文