17.3 队列
队列和堆栈的顺序不同:队列是一种先进先出(First-In First-Out)的结构。排列就是一种典型的队列---首先轮到的是排在队伍最前面的人,新入队的人总是排在队列的最后。
17.3.1 队列接口
与堆栈不同,在队列中,用于执行元素的插入和删除的函数并没有被普遍接受的名字,所以我们将使用insert和delete这两个名字。同样,应该在队列的头部还是尾部插入也没有完全一致的意见。从原则上说,因为它准确地描述了人们在排队时的实际体验。
在传统的接口中,delete函数从队列的头部删除一个元素并将其返回。在另一种接口中,delete函数从队列的头部删除一个元素,但并不返回它。first函数返回队列中第一个元素的值但并不将它从队列中删除。
程序17.5的头文件定义了后面那种接口。它包括链式和动态分配实现的队列需要使用create_queue和destroy_queue函数的原型。
/*
**一个队列模块的接口。
*/
#include <stdlib.h>
#define QUEUE_TYPE int /*队列元素的类型*/
/*
**创建一个队列,参数指定队列可以存储的元素的最大数量。
**注意:这个函数只适用于使用动态分配数组的队列。
*/
void create_queue( size_t size );
/*
**destroy_queue
**销毁一个队列。注意:这个函数只适用于链式和动态分配数组的队列。
*/
void destroy_queue( vo
C和指针 第17章 经典抽象数据类型 17.3 队列
于 2022-07-14 09:07:54 首次发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)