实现两个链表的合并(数据结构课程设计c语言版).doc
《实现两个链表的合并(数据结构课程设计c语言版).doc》由会员分享,可在线阅读,更多相关《实现两个链表的合并(数据结构课程设计c语言版).doc(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date实现两个链表的合并(数据结构课程设计c语言版)课程设计目的:课程设计报告 课程设计题目:实现两个链表的合并 学生姓名 专 业 班 级 指导教师 2012年 06 月 21 日一、 课程设计目的:课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力。二、 课程设计
2、题目: 实现两个链表的合并要求:1)输入2个单链表 2)输出2个单链表合并后形成的结果。三、模块划分:(1)数据模块参考使用课本上的具有头结点的链表抽象数据类型linklist,该抽象数据类型中包含一个elemtype类型的数据和一个指针,在开始用时,elemtype定义为整型变量,指针用来指向下一个元素。对应的使用链表抽象数据类型linklist基本操作的函数有:初始化操作函数void ini(linklist *s)。(2)创建链表模块void create(linklist *s)其功能是创建链表录入数据。(3)输出数据模块void display(linklist *s)其功能为是输出
3、s链表中的各项元素,从而验证操作是否成功(4)排序模块void sort(linklist *s)此函数功能是s链表使用冒泡法对链表进行排序(5)合并链表模块void add(linklist *s1,linklist *s2)其功能是按照题目要求实现两个链表的合并,将s2链表插入到s1链表中。(6)主函数模块void main(),函数中调用了各个模块的函数,从而实现了题目合并排序的要求四、流程图: Creat s1链表对s1进行排序 Creat s2链表 对s2进行排序 对排序后的s1.s2链表合并S1为null s1!=null将s2插入s1中S1=s2 显示s1(即合并后的链表)结束
4、五、算法设计分析 这个两个链表的交叉合并算法主要运用到的是链表的基本操作,定义节点,将链表的创建、链表的插入、链表内容升序排列,通过主函数调用。这样就大大精简了主函数的操作。但主函数中很大篇幅用到了if、else语句,用以指定链表指定结点,这样就使得本来很精简变得繁琐,降低了程序的质量。所以其有优点和缺点,但需要不断的改进,不断优化该程序。六、数据结构:(1)数据类型DataType定义如下:typedef int elemtype;(2)带头结点链表抽象数据类型的结点结构定义如下: typedef struct node elemtype data; struct node *next;li
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实现 两个 合并 数据结构 课程设计 语言版
限制150内