数据结构队列应用实验报告:C语言实现
数据结构队列应用实验报告:C语言实现
实验名称: 队列的应用
实验目的:
- 理解队列的概念及其应用;
- 掌握队列的基本操作;
- 熟悉队列的实现方法;
- 学会使用 C 语言实现队列的应用。
实验内容:
本次实验主要涉及队列的应用,包括:
- 队列的初始化;
- 队列的入队操作;
- 队列的出队操作;
- 队列的判空操作;
- 队列的遍历操作。
实验原理:
队列是一种先进先出 (FIFO) 的数据结构,它可以用来存储一组数据,类似于排队购物或者排队乘坐公交车。队列有两个基本操作:入队 (enqueue) 和出队 (dequeue)。
队列的实现可以采用数组或者链表,本次实验采用数组实现。
实验步骤:
- 定义队列结构体
Queue,包括队列的最大长度maxSize、队列当前长度curSize以及队列数组data; - 定义队列的初始化函数
initQueue,对队列进行初始化操作; - 定义队列的入队函数
enqueue,将元素插入到队列的末尾; - 定义队列的出队函数
dequeue,将队列的第一个元素删除并返回; - 定义队列的判空函数
isEmpty,判断队列是否为空; - 定义队列的遍历函数
traverse,输出队列中所有元素; - 编写主函数
main,利用以上函数实现队列的基本操作。
实验代码:
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100 // 队列最大长度
// 队列结构体
typedef struct {
int maxSize; // 队列最大长度
int curSize; // 队列当前长度
int *data; // 队列数组
} Queue;
// 初始化队列
void initQueue(Queue *queue) {
queue->maxSize = MAX_SIZE;
queue->curSize = 0;
queue->data = (int *)malloc(MAX_SIZE * sizeof(int));
}
// 入队操作
void enqueue(Queue *queue, int value) {
if (queue->curSize == queue->maxSize) {
printf('Queue is full.
');
return;
}
queue->data[queue->curSize++] = value;
}
// 出队操作
int dequeue(Queue *queue) {
if (queue->curSize == 0) {
printf('Queue is empty.
');
return -1;
}
int value = queue->data[0];
for (int i = 1; i < queue->curSize; i++) {
queue->data[i - 1] = queue->data[i];
}
queue->curSize--;
return value;
}
// 判断队列是否为空
int isEmpty(Queue *queue) {
return queue->curSize == 0;
}
// 遍历队列
void traverse(Queue *queue) {
if (isEmpty(queue)) {
printf('Queue is empty.
');
return;
}
printf('Queue: ');
for (int i = 0; i < queue->curSize; i++) {
printf('%d ', queue->data[i]);
}
printf('
');
}
int main() {
Queue queue;
initQueue(&queue);
enqueue(&queue, 1);
enqueue(&queue, 2);
enqueue(&queue, 3);
traverse(&queue); // Output: Queue: 1 2 3
int value = dequeue(&queue);
printf('Dequeued value: %d
', value); // Output: Dequeued value: 1
traverse(&queue); // Output: Queue: 2 3
return 0;
}
实验结果:
Queue: 1 2 3
Dequeued value: 1
Queue: 2 3
实验结论:
本次实验通过使用 C 语言实现队列的基本操作,包括队列的初始化、入队操作、出队操作、判空操作和遍历操作。通过结果可以看出,队列的基本操作实现正确,符合预期。
总之,队列是一种常见的数据结构,具有广泛的应用场景。在实际开发中,需要根据具体情况选择适当的数据结构来实现程序。
原文地址: https://www.cveoy.top/t/topic/n37S 著作权归作者所有。请勿转载和采集!