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

实验三队列实验报告.docx

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

合肥禽配

HEFEI UNIVERSITY

计算机科学与技术系

实验报告

专业名称 课程名称 项目名称

计算机科学与技术 ______ 数据结构与算法 _________ 实验三队列实验 _________

班 级 ______________

学 号 _____________________ 姓 名 ____________________ 同组人员

无 __________________

实验日期 _______

实验三队列实验

实验题目:建立含有若干个元素的循环队列和链队列,并分别实现循环队列和 链队

列的入队和出对操作。

(1)先实现循环队列的入队和出队操作

1?问题分析

本程序要求实现建立含有若干个元素的循环队列,并实现循环队列的入队和出队 操作。

完成该实验需要以下4个子任务:

砂义一个循环队列的存储结构,定义队列的基本算法。

②定义一个display ()函数实现队列元素的输出看入队是否成功

④在主函数中完成操作

测试数据设计如下: 1 2 3 4 5 6

2. 概要设计

为了实现上述程序功能,需要:②声明一个循环队列②定义出队列的基本算法, ②通过键盘输入5个整数,入队,出队 ②在主函数中先往队列里输入5个元 素,然后入队,输出,看入队是否成功,然后出队,再调用 数看是否出队。

1)本程序包含7个函数:

1主函数main() 2. 置空队:InitQueue() 3. 判对空:QUeUeEmPtyo 4. 判队满:QUeUeFUll() 5. 入队:AddO 6. 出队:DeIeteO 7. display()

display ()函

各函数关系如下:

Ini tQueue() QueueEmptyO QueueFuI1()

Add()Ma in

DeIete() display()

3、详细设计

实现概要设计中定义的所有的数据类型,对每个操作给出了算法和代码,主和模块都需要代码。

(1)循环队列

#defi ne maxle n 10 typedef StrUCt{

int data [maxle n]; int front; in t rear; }SeqQueue; (2)队列基本算法

SeqQUeUe *ln itQueue(SeqQueue *q) // 建立一个空循环队列

{

q=(SeqQueue *)malloc(sizeof (SeqQueue)); q->fro nt=0; q->rear=0; return q; }

int QueueFull (SeqQUeUe *q){

//

判断队列是否为满

if (q->fron t==(q->rear+1)%maxle n)

return 1; else return 0; }

程序

}

int QueueEmpty(SeqQueue *q){ if (q->rear==q->front)

return 1; else return 0;

}

// 判断队列是否为空

void Add (SeqQueue *q,int x) //

{

if(!QueueFull(q)){

q->rear=(q->rear+1)%maxlen; q->data[q->rear]=x; }else printf (\

}

入队

void Delete(SeqQueue *q){ // if (!QueueEmpty(q))

q->front=(q->front+1)%maxlen; else printf (\

}

出队

(3)用display()函数输出循环队列元素 void display(SeqQueue *q)

{

int i;

if(q->front!=q->rear)

{

//输出循环队列q的元素

printf(\输出循环队列元素: \i=q->front; do

{

//循环队列非空,输出队列元素

i=(i+1)%maxlen;

printf(\=q->rear);

}

else

printf(\队列为空! \

(4)在主函数中先往队列里输入 5 个元素,输出,看入队是否成功,然后出队,

再调用 display ()函数看是否出队。

int main() {

SeqQueue *q;

int i,y;

q=ln itQueue(q);

Printf(\请输入5个元素\for(i=0;i<5;i++) {

SCan f(\Add(q,y); } display(q); for(i=0;i<5;i++) {

DeIete(q); }

Printf(\请输入1个元素\nf(\Add(q,y);

display(q); return 0;

//建立空循环队列 //入队5个元素

//输出循环队列元素 //把5个元素出队

//再入队一个元素 //再输出循环队列元素

}

4、调试分析

编译无错误 5、用户使用说明

程序名为class1.exe ,在DEBUGt件夹里面。运行环境

ViSUaI C++ 6.0

6、测试结果

请输入吕个元素1 2 3 4 5 ?i由循环罠列元素:12345 请 ?λl÷7E?6 输出循环队列元索:6Press any key to COntinUe 7、附录

#i nclude #in clude #defi ne maxle n 10

实验三队列实验报告.docx

合肥禽配HEFEIUNIVERSITY计算机科学与技术系实验报告专业名称课程名称项目名称计算机科学与技术______数据结构与算法_________实验三队列实验_________班级______________学号
推荐度:
点击下载文档文档为doc格式
6c08j3uckc9sc9l3ppnv1xep036fc30199a
领取福利

微信扫码领取福利

微信扫码分享