请用C语言编程实现队列的基本操作,主要包括队列的创建、入队和出队等基本操作。其中入队数据由自己输入
时间: 2024-05-15 14:19:01 浏览: 76
c语言实现队列,出队入队等操作
很高兴为您解答问题。以下是C语言实现队列的基本操作示例代码:
```
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 5
typedef struct {
int data[MAXSIZE]; // 队列数据
int front; // 队头指针
int rear; // 队尾指针
} Queue;
void create(Queue *q) {
q->front = q->rear = 0; // 初始化队头和队尾指针
}
int isEmpty(Queue q) {
return q.front == q.rear;
}
int isFull(Queue q) {
return (q.rear + 1) % MAXSIZE == q.front; // 环形队列判断是否满
}
void enqueue(Queue *q, int x) {
if (isFull(*q)) {
printf("Queue is full!\n");
return;
}
q->data[q->rear] = x;
q->rear = (q->rear + 1) % MAXSIZE;
}
int dequeue(Queue *q) {
if (isEmpty(*q)) {
printf("Queue is empty!\n");
return -1;
}
int x = q->data[q->front];
q->front = (q->front + 1) % MAXSIZE;
return x;
}
int main() {
Queue q;
create(&q);
int op, x;
while (1) {
printf("Enter operation (1 - enqueue, 2 - dequeue, 0 - exit): ");
scanf("%d", &op);
switch (op) {
case 1:
printf("Enter element: ");
scanf("%d", &x);
enqueue(&q, x);
break;
case 2:
printf("Dequeued element: %d\n", dequeue(&q));
break;
case 0:
exit(0);
default:
printf("Invalid operation!\n");
}
}
return 0;
}
```
以上示例代码,实现了队列的创建、是否为空、是否已满、入队和出队基本操作。其中,isFull函数基于环形队列的思想来判断队列是否已满。示例代码中还包含了一个基本的交互式菜单,通过用户的输入来执行相应的队列操作。
阅读全文