数据结构实验报告表格循环链队列

数据结构实验报告表格循环链队列

ID:35227071

大小:58.00 KB

页数:7页

时间:2019-03-22

数据结构实验报告表格循环链队列_第1页
数据结构实验报告表格循环链队列_第2页
数据结构实验报告表格循环链队列_第3页
数据结构实验报告表格循环链队列_第4页
数据结构实验报告表格循环链队列_第5页
资源描述:

《数据结构实验报告表格循环链队列》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、数 据 结 构 实验报告成绩_____学号1217417007姓名严梦授课教师黄 欣专业12信计实验报告递交日期2014.10.28实验题目用带头结点的循环单链表表示队列,并且只设置一个尾指针。编制程序完成队列操作。一.需求分析1.程序的实现功能:编写函数:(1)建立循环队列,返回尾指针函数linkqueue*create()(2)X入队,返回尾指针函数linkqueue*enqueue(linkqueue*rear,intx)(3)出队返回队头元素函数linkqueue*outqueue(linkqueue*rear)(4)显示队列元素函数voidlist

2、(linkqueue*rear)(5)删除队列函数linkqueue*del(linkqueue*rear)(6)主函数完成功能:a).调用rear=creat();b).调用list(rear);c).输入x值;d).调用enqueue(rear,x);e).调用list(rear);f).调用outqueue(rear)g).调用list(rear);h)调用del(rear)i)list(rear).2.数据输入的内容﹑输入形式与范围输入所创建的循环队列中的数据,以及要插入的x的值,其类型是整型数;输入数据以回车符相隔,以’0’为输入结束符。3.数据输

3、出的内容与形式输出创建循环队列时队列数据,插入x后的队列中数据和出队之后队列的数据,数据以“%3d”相隔。二.主要算法的算法思想.1.创建循环队列:用尾插法建立循环队列,每个新插入的结点都作为队列的最后一个结点。读入结点的数值,生成的新结点插入队尾。再把新结点的指针域指向头结点,然后返回尾指针函数。2.显示队列元素的函数:从rear的第一个结点开始往后依次输出结点数据。3.插入值为x的结点到rear的队头函数:生成值为x的结点*p在*rear之后,把*p的指针域指向头结点,*p作为*rear的后继。4.出队返回队头元素函数:保留头结点的位置,h是头结点,指针

4、p指向队头元素,把队头元素的后继作为头结点的后继,释放p。即删除队头元素。1217417007严梦 数据结构实验报告 第 7 页 共 7 页4.释放单链表rear结点空间函数:尾指针的后继是头结点,头结点就是尾结点,相当于将队列置空。5.主函数:先申明函数首部,设置尾指针;依次调用创建队列函数、显示队列函数;输入x值,调用入队函数、显示队列函数,调用出队函数、显示队列函数和释放队列函数,调用显示队列函数。三.设计:1.线性表存储结构:链式存储。链表结点类型定义:typedefstructnode{intdata;structnode*next;}linkli

5、st;/*单链表结点类型*/2.参数表(列出所有的符号常量与全局变量)参数名数据传递方式数据内容传递所属函数NULL符号常量宏定义0所有函数3.函数间的调用关系图4.列出每个函数的函数声明、函数作用、函数值、形参内容与形式、主要算法步骤等1).创建单链表函数函数首部:linkqueue*creat()形参:rear队列尾指针函数作用:创建存放原始数据的队列函数值:无局部变量rear:作为尾指针,指向生成的队列的尾结点new:结点类型指针,指向新结点。h:作为头指针,指向头结点。输入一个结点算法主要步骤:(a)开辟新结点空间news指向news=(linkli

6、st*)malloc(sizeof(linklist));(b)新结点*new插入队尾rear->next=news;(c)给新结点赋值xnews->data=x;(d)尾指针rear指向新的表尾rear=news;(e)读入下一个结点的值scanf(“%d”,&x);getchar();输入链表结点循环条件:while(x!=0)输入结点数据结束后,尾指针指向头结点rear->next=h;1217417007严梦 数据结构实验报告 第 7 页 共 7 页2).输出循环队列函数函数首部:voidlist(linkqueue*rear)形参:rear:循环队

7、列尾指针函数作用:将单链表输出在窗口上函数值:无局部变量指针p:指向队头元素指针h:尾结点的后继是头结点,指向头结点。算法主要步骤:判断是否为空链表:(a)若空,则输出“thisisanemptylistqueue!”if(rear==h){printf("emptylist");return;}(b)若不为空,则依次输出每一个结点数据while(p!=rear)printf("%3d"p->data);p=p->next;3).入队函数函数首部:voidenqueue(linkqueue*rear,datatypex)形参:rear:队列尾指针;x:插

8、入结点的值。函数作用:将值为x的结点插在队列的队尾。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。