CodeBlocksC语言用顺序存储实现队列的基本操作创建、判空、判满、入队和出队等操作的代码
时间: 2023-07-10 18:23:37 浏览: 102
以下是CodeBlocks中C语言用顺序存储实现队列的基本操作的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100 // 队列最大长度
// 定义队列结构体
typedef struct {
int data[MAXSIZE]; // 存储队列元素
int front; // 队头指针
int rear; // 队尾指针
} Queue;
// 初始化队列
void initQueue(Queue *q) {
q->front = q->rear = 0;
}
// 判断队列是否为空
int isEmpty(Queue q) {
return q.front == q.rear;
}
// 判断队列是否已满
int isFull(Queue q) {
return q.rear == MAXSIZE;
}
// 入队操作
int enQueue(Queue *q, int x) {
if (isFull(*q)) {
printf("队列已满,无法入队!\n");
return 0;
}
q->data[q->rear++] = x;
return 1;
}
// 出队操作
int deQueue(Queue *q, int *x) {
if (isEmpty(*q)) {
printf("队列已空,无法出队!\n");
return 0;
}
*x = q->data[q->front++];
return 1;
}
int main() {
Queue q;
int x;
initQueue(&q);
enQueue(&q, 1);
enQueue(&q, 2);
enQueue(&q, 3);
deQueue(&q, &x);
printf("%d ", x);
deQueue(&q, &x);
printf("%d ", x);
deQueue(&q, &x);
printf("%d ", x);
return 0;
}
```
上述代码中,MAXSIZE 宏定义了队列的最大长度,Queue 结构体定义了队列的结构,其中 data 数组用于存储队列元素,front 和 rear 分别为队头指针和队尾指针。
initQueue 函数用于初始化队列,isEmpty 和 isFull 函数用于判断队列是否为空和已满,enQueue 函数用于入队操作,deQueue 函数用于出队操作。在 main 函数中,我们对队列进行了初始化,然后依次入队元素 1、2、3,并依次出队元素并打印出来。
阅读全文