
/* c3-4.h 队列的顺序存储结构(出队元素时不移动元素,只改变队头元素的位置) */
#define QUEUE_INIT_SIZE 10 /* 队列存储空间的初始分配量 */
#define QUEUE_INCREMENT 2 /* 队列存储空间的分配增量 */
typedef struct
{
QElemType *base; /* 初始化的动态分配存储空间 */
int front; /* 头指针,若队列不空,指向队列头元素 */
int rear; /* 尾指针,若队列不空,指向队列尾元素的下一个位置 */
int queuesize; /* 当前分配的存储容量(以sizeof(QElemType)为单位) */
}SqQueue2;
/* bo3-8.c 循环队列(存储结构由c3-4.h定义)的基本操作(4个) */
int QueueLength(SqQueue2 Q)
{ /* 返回Q的元素个数,即队列的长度 */
return(Q.rear-Q.front+Q.queuesize)%Q.queuesize;
}
void EnQueue(SqQueue2 *Q,QElemType e)
{ /* 插入元素e为Q的新的队尾元素 */

本文介绍了循环队列的实现,包括动态存储空间的分配、入队、出队操作。通过队列长度函数、入队函数EnQueue、出队函数DeQueue以及遍历函数QueueTraverse展示了循环队列的基本操作。示例代码展示了如何使用这些操作插入、删除元素并检查队列状态。
最低0.47元/天 解锁文章
3419

被折叠的 条评论
为什么被折叠?



