數据结构实验报告表格循环链队列.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
數据结构实验报告表格循环链队列

数 据 结 构 实 验 报 告 成绩_____ 学号 1217417007 姓名 严梦 授课教师 黄 欣 专业 12信计 实验报告递交日期 2014.10.28 实验题目 用带头结点的循环单链表表示队列,并且只设置一个尾指针。编制程序完成队列操作。 需求分析 1.程序的实现功能: 编写函数: 建立循环队列,返回尾指针函数 linkqueue *create( ) X入队,返回尾指针函数 linkqueue * enqueue(linkqueue *rear,int x) 出队返回队头元素函数 linkqueue * outqueue(linkqueue *rear) (4)显示队列元素函数 void list(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.数据输出的内容与形式 输出创建循环队列时队列数据,插入x后的队列中数据和出队之后队列的数据, 数据以“%3d”相隔。 二. 主要算法的算法思想. 1.创建循环队列: 用尾插法建立循环队列,每个新插入的结点都作为队列的最后一个结点。读入结点的数值,生成的新结点插入队尾。再把新结点的指针域指向头结点,然后返回尾指针函数。 2. 显示队列元素的函数: 从rear的第一个结点开始往后依次输出结点数据。 3. 插入值为x的结点到rear的队头函数: 生成值为x的结点*p在*rear之后,把*p的指针域指向头结点,*p作为*rear的后继。 出队返回队头元素函数: 保留头结点的位置,h是头结点,指针p指向队头元素,把队头元素的后继作为头结点的后继,释放p。即删除队头元素。 4. 释放单链表rear结点空间函数: 尾指针的后继是头结点,头结点就是尾结点,相当于将队列置空。 5. 主函数: 先申明函数首部,设置尾指针;依次调用创建队列函数、显示队列函数;输入x值,调用入队函数、显示队列函数,调用出队函数、显示队列函数和释放队列函数,调用显示队列函数。 三. 设计: 1.线性表存储结构:链式存储。 链表结点类型定义: typedef struct node {int data; struct node *next; }linklist; /*单链表结点类型*/ 2.参数表(列出所有的符号常量与全局变量) 参数名 数据传递方式 数据内容 传递 所属函数 NULL 符号常量 宏定义 0 所有函数 函数间的调用关系图 4.列出每个函数的函数声明、函数作用、函数值、形参内容与形式、主要算法步骤等 1).创建单链表函数 函数首部:linkqueue *creat( ) 形参:rear队列尾指针 函数作用:创建存放原始数据的队列 函数值:无 局部变量 rear:作为尾指针,指向生成的队列的尾结点 new:结点类型指针,指向新结点。 h:作为头指针,指向头结点。 输入一个结点算法主要步骤: (a) 开辟新结点空间news指向 news=(linklist *)malloc(sizeof(linklist)); (b) 新结点*new插入队尾 rear-next=news; (c) 给新结点赋值x news-data=x; (d) 尾指针rear指向新的表尾 rear=news; (e) 读入下一个结点的值 scanf(“%d”,x);getchar(); 输入链表结点循环条件: while(x !=0) 输入结点数据结束后,尾指针指向头结点 rear-next=h; 2).输出循环队列函数 函数首部:void list(li

文档评论(0)

fv45ffsjjI + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档