信息科学与工程学院实验报告
《数据结构》课程实验报告
专业名称 学生姓名 实验题目 年级 学号 班级 指导教师 提交时间 实验三 队列 一、实验目的和要求
(1)熟悉C语言的上机环境,进一步掌握C语言的结构特点。 (2)掌握队列的顺序表示和实现。 二、实验环境
Windows7 ,VC 三、实验内容及实施 实验三:队列
【实验要求】
构建一个循环队列, 实现下列操作 1、初始化队列(清空); 2、入队; 3、出队;
4、求队列长度;
5、判断队列是否为空; 【源程序】 #include
typedef struct {
int *base; int front; int rear;
}SqQueue;//队列的存储结构 int InitQueue(SqQueue &Q) {
1
信息科学与工程学院实验报告
Q.base=new int[MAXSIZE]; Q.front=Q.rear=0; return OK; }//队列的初始化
int EnQueue(SqQueue &Q,int e) {
if((Q.rear+1)%MAXSIZE==Q.front)
return ERROR; Q.base[Q.rear]=e;
Q.rear=(Q.rear+1)%MAXSIZE; return OK; }//队列的入队
int DeQueue(SqQueue &Q,int &e) {
if(Q.front==Q.rear) return ERROR; e=Q.base[Q.front];
Q.front=(Q.front+1)%MAXSIZE; return OK; }//队列的出队
int QueueLength(SqQueue &Q) { int i;
i=(Q.rear-Q.front+MAXSIZE)%MAXSIZE; return i; }//求队列长度
void JuQueue(SqQueue &Q) {
if(Q.rear==Q.front)
printf(\队列为空\
else
printf(\队列不为空\
}//判断队列是否为空
void QueueTraverse(SqQueue &Q)
2
信息科学与工程学院实验报告
{ int i,k;
k=QueueLength(Q); for(i=1;i<=k;i++) {
printf(\ Q.front=(Q.front+1)%MAXSIZE; }
}//输出队列元素 void main() { int e,i,n; SqQueue Q; InitQueue(Q);
printf(\循环队列的长度为:\ scanf(\
printf(\请输入入队元素:\\n\ for(i=0;i scanf(\ EnQueue(Q,e); } printf(\队列长度为:%d\\n\ JuQueue(Q); printf(\ printf(\执行出队操作\\n\ DeQueue(Q,e); printf(\出队元素是%d\\n\ QueueTraverse(Q); printf(\ } 四、实验结果 (程序的执行结果) 3 信息科学与工程学院实验报告 五、实验讨论 掌握出队入队的要点和实现代码。 4