数据结构课程设计实现两个链表的合并.doc

数据结构课程设计实现两个链表的合并.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程设计实现两个链表的合并,数据结构链表,java链表数据结构,数据结构单链表,数据结构双向链表,链表的数据结构,数据结构单链表代码,数据结构中的链表,数据结构之链表,数据结构链表ppt

一、 需求分析: 题目: 实现两个链表的合并 问题描述: 1. 建立两个链表A和B,链表元素个数分别为m和n个。 2. 假设元素分别为(x1,x2,…xm),和(y1,y2, …yn)。把它们合并成一个线形表C,使得: 当m=n时,C=x1,y1,x2,y2,…xn,yn,…,xm 当nm时,C=y1,x1,y2,x2,…ym,xm,…,yn 输出线性表C。 由题目的相关信息可以分析得到:首先我们需要建立两个链表AB,A链表的元素个数为m;B链表的元素个数为n;在将A\B链表进行合并,更具m和n的大小关系决定链表C的元素顺序;再将C经行直接插入排序得到一个新的链表D;最后输出ABCD的相关信息。 二、 算法的流程图 cmd=0 cmd=1 错误输入 正确 错误 正确 错误 三、 算法设计分析 这个两个链表的交叉合并算法主要运用到的是链表的基本操作,定义节点,将链表的创建、计算链表的长度、链表A,B的交叉组合、链表内容升序排列、删除链表指定位置元素、删除指定的元素等算法写成了独立函数,通过主函数调用。这样就大大精简了主函数的操作。但主函数中很大篇幅用到了if、else语句,用以指定链表指定结点和指定元素的删除操作,这样就使得本来很精简变得繁琐,降低了程序的质量。所以其有优点和缺点,但需要不断的改进,不断优化该程序。 四、 源代码 程序源代码: #includestdio.h #includestdlib.h typedef struct node //节点定义 { int data; struct node *next; } node,*linklist; linklist creat(linklist head) //该函数用来创建链表 { node *r,*s; int a; r = (linklist)malloc(sizeof(node)); head = r; scanf(%d,a); while(a != 0) { s =(node*)malloc(sizeof(node)); s-data=a; r-next=s; r=s; printf(please input a data:); scanf(%d,a); } r-next=NULL; return head; } linklist length(linklist l) // 返回L中数据元素个数 { int i=0; linklist p=l-next; // p指向第一个结点 while(p) { i++; p=p-next; } return i; } linklist mergel(linklist A,linklist B) //用于实现链表A,B的交叉组合 { int m,n; node *p,*q,*s,*t; linklist C; p=A-next; q=B-next; m=length(A); n=length(B); C=A; if(mn) { p=B-next; q=A-next; C=B; } while(pq) { s=p-next; p-next=q; if(s) { t=q-next; q-next=s; } p=s; q=t; } return C; } linklist sort(linklist L) //链表内容升序排列 { linklist p,q,min; int temp; p=L; while( p=p-next ) { q=min=p; while(q=q-next){ if( q-datamin-data ) min = q; } if( min!=p ) { temp = p-data; p-data = min-data; m

文档评论(0)

tianma2015 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档