链表的合并课程计报告正文.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
目 录 1 前言 1 2 需求分析 1 21课程设计目的 2 22课程设计任务 2 23设计环境 2 3 概要设计 2 3.1数据结构设计 2 32模块设计 4 详细设计 4 5 测试分析 10 6 课程设计总结 11 参考文献 11 致 谢 11 附录..........................................................................................................12 1 前言 实现对两个的链表的交叉合并,输出线形表C用直接插入排序法对C进行升序排序,生成链表D,并输出链表D。掌握对线性表的链式表示和实现,实现插入的操作。了解链表交叉合并的方法和直接插入排序法的思想,并深刻掌握算法的格式和应用。提高对数据结构的理解和应用,增强个人动手实践能力和逻辑分析能力。 2 需求分析 2.1课程设计目的 学生在教师指导下运用所学课程的知识来研究、解决一些具有一定综合性问题的专业课题。通过课程设计(论文),提高学生综合运用所学知识来解决实际问题、使用文献资料、及进行科学实验或技术设计的初步能力,为毕业设计(论文)打基础。 2.2课程设计任务 (1)建立两个链表A和B,链表元素个数分别为m和n个。 (2)假设元素分别为(x1,x2,…xm),和(y1,y2, …yn)。把它们合并成一个线形表C,,C=x1,y1,x2,y2,…xn,yn,…,xmC=y1,x1,y2,x2,…ym,xm,…,yn 输出线形表C (3)用直接插入排序法对C进行升序排序,生成链表D,并输出链表D。 测试数据: (1)A表(30,41,15,12,56,80)(23,56,78,23,12,33,79,90,55)(2)(30,41,15,12,56,80,23,12,34) B表(23,56,78,23,12) (1)WINDOWS 2000/2003/XP/7/Vista系统 (2)Visual C++ typedef struct node { elemtype data; struct node *next; }*linklist,lnode; 判断m和n的大小 对C进行直接插入排序 图3.11链表合并流程所示 (1)创建链表模块 linklist create(int n) 其功能是创建n个结点并带有头结点。 (2)输出链表模块 void print(linklist a) 其功能是输出链表 (3)合并链表模块 linklist merge(linklist a,linklist b,int n,int m) 其功能是将两个链表合并 (4)排序模块 void insertsort(linklist h) 其功能是将链表进行排序 (5)主函数模块 Main()函数中调用了各个模块的函数,从而实现了题目合并的要求 4 详细设计 (1)创建链表函数的设计 创建链表,首先由主函数输入要创建的链表长度n,在由主函数将参数传递到创建链表函数creat,由For循环控制表节点的创建,由malloc函数开辟新的结点空间,创建链表结束后,由print函数将链表元素输出。如图4.1链表的建立所示。 (2)输出链表函数的实现 待链表输入完成后,定义单链表的头结点,通过运用一个循环语句,将链表内的元素一一输出在执行程序界面上。如图4.2输出链表流程图所示。 (3)合并链表函数的实现 合并链表,即将A、BLc=x1,y1,x2,y2,…xn,yn…;Lc= y1,x1,y2, x2,…yn,xn...。(4)链表直接插入排序的实现 链表合并之后,合并成了C链表,再对C进行直接插入排序(按从小到大),然后对链表的成员依次进行比较,把小的成员放到链表的前面,依次重复这样的执行,再返回链表,在主函数里定义一个D链表,把返回的值赋给D。最后输出D。如图4.4链表插入排序流程图所示。 (5)主函数的定义 由流程图中数据处理的顺序可以定义函数执行的顺序,即先执行创建链表函数Creat,建立两个链表a和b,两链表创建完成后在执行链表输出函数Print,将链表输出在程序界面中,将然后执行两链表进行交叉合并函数。 图4.1链表的建立流程图 图4.3 链表插入排序流程图 图4.4 主函数流程图 5 测试分析 (1)打开软件,输入代码,运行程序,录入第一组数据,建立a链表输入为:30 41 15 12 56 80,接着建立b链表,输入其为:23 56 78

文档评论(0)

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

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

1亿VIP精品文档

相关文档