- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
最近下载
- 2014日产玛驰全车电路图维修手册51-仪表和警告灯.pdf VIP
- 软件公司质量手册(含程序文件).doc VIP
- 城市总体规划编制标准.pdf VIP
- 电力系统英文书籍推荐.docx
- Unit 1 Happy Holiday 第5课时(Section B 2a-3c)课件 -2025-2026学年人教版英语八年级上册.pptx VIP
- 一种基于TTE总线的运载火箭全数字互联系统.pdf VIP
- 新译林版英语六年级下册全册教案GG.doc VIP
- 美容心理学概述PPT(完整版)课件.pptx VIP
- 第三章 无土栽培的理论基础.ppt VIP
- 企业管理手册××软件公司质量手册.pdf VIP
文档评论(0)