中公 发表于 2016-6-19 14:46:54

计算机基础知识:队列的顺序存储结构

2014公共基础知识题库|行政能力测试复习资料|2014年申论热点
【导语】在事业单位考试中,计算机专业知识的复习向来是考生复习备考阶段的一大重点,其中新都事业单位考试网为计算机基础知识的复习为考生提供知识点梳理,帮助考生备考!
队列的顺序存储结构称为顺序队列。顺序队列可利用一个一维数组和两个指针来实现。一维数组用于存储当前队列中的所有元素,两个指针head和rear分别指向当前队列的队首元素和队尾元素。指向队首的指针head称为队首指针,指向队尾的指针rear称为队尾指针。
若将顺序队列定义为结构类型sequeue,其类型说明如下:
# define MAXSIZE 100 /* 顺序队列所能存储元素的数 */
typedef struct node
{ datatype data; /* 一维数组存储顺序队列中的所有元素 */
int head, rear; /* 顺序队列的队首和队尾指针 */
}sequeue; /* 顺序队列的类型定义 */
sequeue *sq; /* sq是指向顺序队列类型的指针变量 */
其中:
data是一维数组,用于存储顺序队列的所有元素。
head是队首指针,它指向队列个元素之前。
rear是队尾指针,它指向队列最后一个元素本身。
MAXSIZE是数组长度,它表示顺序队列的容量。
和顺序栈一样,顺序队列也有空队、满队或非空非满这三种形态。那么,在队空、队满及队列非空的条件下,顺序队列队首和队尾指针分别是:
① 若顺序队列为空,则head=rear,队列的初始状态可设置为head=rear= -1;
② 若顺序队列为满,则rear=MAXSIZE-1;
③ 若顺序队列非空非满,则rear>head。

若不考虑溢出情况,则顺序队列的入队操作可表示为:
sq->rear++;
/* 入队操作时,将队尾指针加1 */
sq->data=x;
/* 将新元素插入队尾指针所指单元中 */
sq->head++;
/* 出队操作时,将队首指针加1 */
以上是新都事业单位考试网为考生梳理计算机基础知识点,供大家学习识记!
更多精彩内容,请访问事业单位招聘考试网!
页: [1]
查看完整版本: 计算机基础知识:队列的顺序存储结构