队列也可以用顺序存储表示。定义还是一样的:从队尾rear推入元素。从头部head拿出元素,是FIFO。
与链式存储一致,我们仍然需要附设两个指针front和rear分别表示队列头元素和队列元素的位置。初始时front=rear=0是队列空的条件。
每当插入新的队列元素时,尾指针将增1.删除队列头元素时,头指针增加1。即非空队列中:头元素总是指向队首元素,而尾指针总是指向队尾元素的下一个位置。
除了基本的顺序存储外,我们还可以使用循环数组来构造一个循环队列。
在循环队列中,[......]
队列也可以用顺序存储表示。定义还是一样的:从队尾rear推入元素。从头部head拿出元素,是FIFO。
与链式存储一致,我们仍然需要附设两个指针front和rear分别表示队列头元素和队列元素的位置。初始时front=rear=0是队列空的条件。
每当插入新的队列元素时,尾指针将增1.删除队列头元素时,头指针增加1。即非空队列中:头元素总是指向队首元素,而尾指针总是指向队尾元素的下一个位置。
除了基本的顺序存储外,我们还可以使用循环数组来构造一个循环队列。
在循环队列中,[......]
终于是循环队列了,有点小麻烦,一定注意标红的几句不要忘记了!!
Queue.h:定义了基本操作
#include <iostream>
enum {QIS=5,QI=2};
enum {OK=0,WRONG=-1};
typedef int Elem;
typedef int Status;
typedef struct
{
Elem *base;
int front;
int rear;
int qsize[......]