和栈相反,队列是一种先进先出的的线性表。它只允许在表的一端进行插入,而在另一端删除元素。这和我们日常生活中的队列是一致的,最早进入队列的元素最早离开。在队列中,允许插入的一端叫做队尾,允许删除的一端则稀烂为队头。
顺序队列,即队列的顺序存储结构。由于队列的队头和队尾的位置均发生变化,因此在队列顺序存储结构中,除了用一组地址连续的存储单元依次存放从队头到队尾的元素之外,还需要附设两个指针front和rear指向队头和队尾元素。
为了操作方便,在此约定:在非空队列中,队头指针front始终指向队头元素,而队尾rear始终指向队尾元素下一个位置。
顺序队列的类型描述:
//顺序队列的类型描述
#define MAXSIZE 100
typedef int ElemType;
typedef struct{
ElemType *data;
int front,rear;
}SqQueue;
基本操作:
1. 初始化顺序队列Init_SqQueue(SqQueue* Q):
//初始化顺序队列
void Init_SqQueue(SqQueue* Q){
Q->data = (SqQueue*)malloc(size

本文介绍了顺序队列的概念,它是一种先进先出的线性表,分为队头和队尾。顺序队列使用一组连续的存储单元存放元素,同时附有两个指针front和rear分别指向队头和队尾。文章详细阐述了顺序队列的基本操作,如初始化、销毁、判断队列状态、获取队列长度、入队、出队等,并讨论了在实际操作中可能出现的“假溢出”现象及其解决办法,包括数据前移和循环队列的构建。
最低0.47元/天 解锁文章
663

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



