用C语言编程实现建立一个顺序队列.并完成以下操作: 1.通过键盘读取元素实现入队操作。(从键盘接受元素个数n以及n个整型数) 2.实现元素出队操作,并打印出输出元素。 3.获取队首元素。 4.判断队列是否为空。 5.清空队列。
时间: 2024-02-22 19:55:15 浏览: 85
商业编程-源码-数据结构(C语言版)顺序队列.zip
好的,下面是用C语言实现建立一个顺序队列的代码,包括入队、出队、获取队首元素、判断队列是否为空以及清空队列操作:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100 // 定义队列最大长度为100
typedef struct {
int data[MAXSIZE]; // 队列的存储空间
int front, rear; // 队列的头、尾指针
} Queue;
// 初始化队列
void initQueue(Queue *queue) {
queue->front = queue->rear = 0;
}
// 判断队列是否为空
int isEmpty(Queue *queue) {
return queue->front == queue->rear;
}
// 判断队列是否已满
int isFull(Queue *queue) {
return (queue->rear + 1) % MAXSIZE == queue->front;
}
// 元素入队操作
void enQueue(Queue *queue, int data) {
if (isFull(queue)) {
printf("队列已满,无法插入!\n");
return;
}
queue->data[queue->rear] = data;
queue->rear = (queue->rear + 1) % MAXSIZE;
}
// 元素出队操作
void deQueue(Queue *queue) {
if (isEmpty(queue)) {
printf("队列为空,无法删除!\n");
return;
}
printf("出队元素为:%d\n", queue->data[queue->front]);
queue->front = (queue->front + 1) % MAXSIZE;
}
// 获取队首元素
int getFront(Queue *queue) {
if (isEmpty(queue)) {
printf("队列为空,无法获取队首元素!\n");
return -1;
}
return queue->data[queue->front];
}
// 清空队列
void clearQueue(Queue *queue) {
while (!isEmpty(queue)) {
deQueue(queue);
}
}
int main() {
Queue queue;
int n, i, data;
initQueue(&queue);
printf("请输入元素个数:");
scanf("%d", &n);
printf("请输入%d个整型数:\n", n);
for (i = 0; i < n; i++) {
scanf("%d", &data);
enQueue(&queue, data);
}
printf("队列中的元素为:\n");
while (!isEmpty(&queue)) {
deQueue(&queue);
}
printf("队首元素为:%d\n", getFront(&queue));
clearQueue(&queue);
return 0;
}
```
以上就是实现建立一个顺序队列的代码,包括入队、出队、获取队首元素、判断队列是否为空以及清空队列操作。
阅读全文