好文档 - 专业文书写作范文服务资料分享网站

数据结构-队列实验报告

天下 分享 时间: 加入收藏 我要投稿 点赞

信息科学与工程学院实验报告

《数据结构》课程实验报告

专业名称 学生姓名 实验题目 年级 学号 班级 指导教师 提交时间 实验三 队列 一、实验目的和要求

(1)熟悉C语言的上机环境,进一步掌握C语言的结构特点。 (2)掌握队列的顺序表示和实现。 二、实验环境

Windows7 ,VC 三、实验内容及实施 实验三:队列

【实验要求】

构建一个循环队列, 实现下列操作 1、初始化队列(清空); 2、入队; 3、出队;

4、求队列长度;

5、判断队列是否为空; 【源程序】 #include #define MAXSIZE 100 #define OK 1; #define ERROR 0;

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

103074jhse072ie1yi364bptb11wxs00mhp
领取福利

微信扫码领取福利

微信扫码分享