实验三队列实验报告_第1页
实验三队列实验报告_第2页
实验三队列实验报告_第3页
实验三队列实验报告_第4页
实验三队列实验报告_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机科学与技术系实 验 报 告专业名称 计算机科学与技术课程名称 数据结构与算法项目名称 实验三队列实验 班级学 号 1姓名同组人员 无实验日期实验三 队列实验实验题目: 建立含有若干个元素的循环队列和链队列,并分别实现循环队列和 链队列的入队和出对操作。(1)先实现循环队列的入队和出队操作1. 问题分析 本程序要求实现建立含有若干个元素的循环队列, 并实现循环队列的入队和出队 操作。完成该实验需要以下 4 个子任务:1 定义一个循环队列的存储结构,定义队列的基本算法。2 定义一个 display ()函数实现队列元素的输出看入队是否成功3 通过队列的基本算法实现队列的出队操作4 在主函数中

2、完成操作 测试数据设计如下:1 2 3 4 562. 概要设计为了实现上述程序功能,需要: 1 声明一个循环队列2 定义出队列的基本算 法,3 通过键盘输入 5个整数,入队,出队 4 在主函数中先往队列里输入 5 个元素,然后入队,输出,看入队是否成功,然后出队,再调用 display () 函数看是否出队。1) 本程序包含 7 个函数:1 主函数 main()2. 置空队: InitQueue()3. 判对空 : QueueEmpty()4. 判队满: QueueFull()5. 入队 :Add()6. 出队 :Delete()()各函数关系如下:InitQueue()QueueEmpty(

3、)QueueFull()Add()MainDelete()display()3、详细设计实现概要设计中定义的所有的数据类型,对每个操作给出了算法和代码,主 程序和模块都需要代码。(1)循环队列#define maxlen 10typedef structint data maxlen;int front;int rear;SeqQueue;(2) 队列基本算法*q)SeqQueue *InitQueue(SeqQueue题分析本程序要求实现建立含有若干个元素的链队列,并实现链队列入队和出队操作完成该实验需要以下 4 个子任务:1 定义一个链队列的存储结构,定义链 队列的基本算法。2 定义一个

4、display ()函数实现队列元素的输出看入队是否成功3 通过队列的基本算法实现队列的出队操作4 在主函数中完成操作测试数据设计如下:1 2 3 4 562. 概要设计为了实现上述程序功能,需要: 1 声明一个链队列2 定义出链队列的基本算 法,3 通过键盘输入 5个整数,入队,出队 4 在主函数中先往队列里输入 5 个元素,然后入队,输出,看入队是否成功,然后出队,再调用 display () 函数看是否出队。2) 本程序包含 6 个函数:1 主函数 main()2. 置空队: InitQueue()3. 判对空 : QueueEmpty()4. 入队 :Add()5. 出队 :Delet

5、e()()各函数关系如下:SetQueue()Main ()QueueEmpty()Add()Delete()display()4、详细设计实现概要设计中定义的所有的数据类型,对每个操作给出了算法和代码,主 程序和模块都需要代码。(1)链队列#define maxlen 10typedef struct nodeint data;struct node *next;LinkList;typedef structLinkList *front,*rear;LinkQueue;LinkQueue *q;(2) 队列基本算法LinkQueue *SetQueue()题分析完成该实验需要以下 4 个子

6、任务:1 定义一个循环队列的存储结构,定义队列的基本算法。2 定义一个 print ()函数实现程序3 通过队列的基本算法实现队列的出队操作4 在主函数中完成操作 测试数据设计如下:2. 概要设计为了实现上述程序功能,需要: 1 声明一个循环队列2 定义出队列的基本算 法,3 在主函数调用 print( )函数看是否出队。3) 本程序包含 8 个函数:1 主函数 main()2. 置空队: InitQueue()3. 判对空 : QueueEmpty()4. 判队满: QueueFull()5. 入队 :Add()6. 出队 :Delete()()8. GetHead()各函数关系如下:Mai

7、n ()GetHead()InitQueue() QueueEmpty() QueueFull() Add()Main Delete() print()5、详细设计实现概要设计中定义的所有的数据类型,对每个操作给出了算法和代码,主 程序和模块都需要代码。(1)循环队列#define maxlen 10typedef structchar data maxlen;int front;int rear;SeqQueue;(2) 队列基本算法SeqQueue *InitQueue(SeqQueue *q) / 建立一个空循环队列 q=(SeqQueue *)malloc(sizeof (SeqQue

8、ue);q-front=0;q-rear=0;return q;int QueueFull (SeqQueue *q) / if (q-front=(q-rear+1)%maxlen) return 1;else return 0;判断队列是否为满int QueueEmpty(SeqQueue *q) if (q-rear=q-front)return 1;else return 0;char GetHead(SeqQueue *q) if(!QueueEmpty(q)/ 判断队列是否为空/ 取栈顶元素return q-data(q-front+1)%maxlen;else printf(qu

9、eue Empty); void Add (SeqQueue *q,char x) / 入队 if(!QueueFull(q) q-rear=(q-rear+1)%maxlen; q-dataq-rear=x;else printf (queue full);void Delete(SeqQueue *q) / if (!QueueEmpty(q) q-front=(q-front+1)%maxlen; else printf (queue Empty);出队(3 )用print() 函数验证程序 void print(SeqQueue *q) char x,y,t;x=e;y=c;Add(q

10、,h);Add(q,r);Add(q,y); x=GetHead(q);Delete(q);Add(q,x);x=GetHead(q);Delete(q);Add(q,a);while (QueueEmpty(q)=0) y=GetHead(q); Delete(q); printf(%c,y);printf(%c,x);( 4)在主函数中调用 print ()函数验证程序int main()SeqQueue *q; q=InitQueue(q); print(q); return 0;4、调试分析编译无错误5、用户使用说明程序名为,在 DEBUG文件夹里面。运行环境 Visual c+6、测

11、试结果7、附录#include #include #define maxlen 10typedef struct char data maxlen; int front; int rear;SeqQueue;SeqQueue *InitQueue(SeqQueue *q) / q=(SeqQueue *)malloc(sizeof (SeqQueue); q-front=0;q-rear=0; return q;建立一个空循环队列int QueueFull (SeqQueue *q) / if (q-front=(q-rear+1)%maxlen) return 1;else return 0

12、;判断队列是否为满int QueueEmpty(SeqQueue *q)if (q-rear=q-front)return 1;/ 判断队列是否为空else return 0;char GetHead(SeqQueue *q) / 取栈顶元素 if(!QueueEmpty(q)return q-data(q-front+1)%maxlen;else printf(queue Empty);void Add (SeqQueue *q,char x)/ 入队if(!QueueFull(q)q-rear=(q-rear+1)%maxlen; q-dataq-rear=x;else printf (queue full);void Delete(SeqQueue *q)/出队if (!QueueEmpty(q) q-front=(q-front+1)%maxlen;else printf (queue Empty);void print(SeqQueue *q)char x,y,t; x=e;y=c; Add(q,h); Add(q,r); Add(q,y);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论