实验学时:
2
实验类型:
(设计型)
一、实验目的
1.
理解并掌握队列的逻辑结构和顺序存储结构,了解循环队列的特点;
2.
掌握循环队列中基本操作的相关算法;
3.
编程实现相关算法;
4.
学会利用循环队列解决实际问题。
二、实验条件
Visual C++
。
三、实验原理及相关知识
1.
循环队列存储结构描述
#define MAXSIZE 100
//
最大队列长度
typedef struct
{
QElemType *base;
//
存储空间基址
int front;
//
头指针
int rear;
//
尾指针
}SqQueue;
2.
基本操作的算法描述
设下标为
index
,队列长度为
m
,则下一个下标的累进循环计算公式为:
index_next = ( index+1 ) % m
。
实验中涉及的三个关键操作时循环队列中求队列长度、入队和出队操作。
(1)
求长度
所谓求队列长度,即技术队列中元素的个数。
算
法
思
想
:
根
据
循
环
队
列
的
结
构
特
征
,
可
以
用
公
式
(
Q.rear-Q.front+
MAXSIZE
)
%MAXSIZE
直接计算出队列的长度。
算法描述
Status QueueLength(SqQueue Q)