- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《数据结构》实验
学 院: 计算机学院
专 业:计算机科学与技术
班级学号:计1203 201207010323
姓 名: 方荣
实验一:实现两个链表的合并
题目:实现两个链表的合并
基本要求:
(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=
(3)为统一起见,测试数据可以是{710,342,045,686,6,841,429,134,68,264},也可以调用系统的随机函数产生。
测试数据:
{710,342,45,686,6,841,429,134,68,264}
算法思想:
这个两个链表的交叉合并算法主要运用到的是链表的基本操作,定义结点,链表的创建、计算链表的长度、链表A,B的交叉合并、输出链表等算法写成独立函数,通过主函数的调用,实现题目的要求。
模块划分:
单链表的存储结构。
输出链表。
用尾插法建立链表。
计算链表的长度。
合并链表。
主函数。
数据结构:
源程序:
#includestdlib.h
#includestdio.h
#includeconio.h
#includemalloc.h
#define L sizeof(struct Node)
struct Node
{//构造结构体
long int data;
struct Node *next;
};
struct Node *create(int a)
{
int n;
struct Node *p1,*p2,*head;
head = NULL;
n = 0;
p2=p1=(struct Node *)malloc(L);
scanf(%ld,p1-data);
while(a)
{
n = n+1;
if(n == 1)
head=p1;
else
p2-next=p1;
p2=p1;
p1=(struct Node *)malloc(L);
if(a!=1)
scanf(%ld,p1-data);
a--;
}
p2-next=NULL;
return (head);
}
void print(struct Node *head)
{//输出链表
struct Node *p;
p=head;
printf(\n);
if(head!=NULL)
do
{
printf(%ld,p-data);
printf( );
p=p-next;
}while(p!=NULL);
printf(\n);
}
struct Node* inter_link(struct Node* chain1, int a, struct Node * chain2, int b)
{//链表合并函数
int temp;
struct Node *head,*p1,*p2,*pos;
if(a=b)//当链表p1元素个数大于链表p2元素个数
{
head=p1=chain1;//p1的第一个元素置于合成链表的表头
p2=chain2;
}
else
{
head=p1=chain2;
p2=chain1;
temp=a;
a=b;
b=temp;
}
pos=head;
while(p2!=NULL)
{
p1=p1-next;
pos-next=p2;
pos=p2;
p2=p2-next;
pos-next=p1;
pos=p1;
}
return head;
}
void InserSort(struct Node *p,int m)
{
int i,j,t;
struct Node *k;
k=p;
for(i=0;im-1;i++)
{
for(j=0;jm-i-1;j++)
{
if(p-data(p-next)-data)
{
t=p-data;
p-data=(p-next)-data;
(p-next)-data=t;
}
p=p-next;
}
p=k;
}
}
int main()
{//测试函数
struct Node *p1,*p2;
int a,b,h;
printf(***************************
您可能关注的文档
- 第四章宏观经济行情分析.doc
- 第四节海水中的化学元素(第一课时).doc
- 第四讲评人物二(细读).docx
- 第四章第15讲富集在海水中的元素卤素.docx
- 等温线试题doc2.doc
- 筛选并整合文中的信息(教师版).doc
- 简单范文doc0.doc
- 管理人员违纪违规行为处分规定.docx
- 管线打开施工方案.docx
- 管道工初中高等级鉴定标准(初稿).doc
- 中国国家标准 GB/T 46141-2025智慧城市基础设施 智慧交通数字化支付应用指南.pdf
- 《GB/T 46141-2025智慧城市基础设施 智慧交通数字化支付应用指南》.pdf
- GB/T 16855.1-2025机械安全 安全控制系统 第1部分:设计通则.pdf
- 中国国家标准 GB/T 16855.1-2025机械安全 安全控制系统 第1部分:设计通则.pdf
- 《GB/T 16855.1-2025机械安全 安全控制系统 第1部分:设计通则》.pdf
- GB/T 2940-2025柴油机用喷油泵、调速器、 喷油器弹簧 技术规范.pdf
- 中国国家标准 GB/T 2940-2025柴油机用喷油泵、调速器、 喷油器弹簧 技术规范.pdf
- 《GB/T 2940-2025柴油机用喷油泵、调速器、 喷油器弹簧 技术规范》.pdf
- 《GB/T 30174-2025机械安全 术语》.pdf
- GB/T 30692-2025提高在用自动扶梯和自动人行道安全性的规范.pdf
最近下载
- 第40届全国中学生物理竞赛复赛试题含答案.pdf VIP
- 【高中数学竞赛真题•强基计划真题考前适应性训练】 专题13 数学归纳法 真题专项训练(全国竞赛+强基计划专用)解析版.docx VIP
- 神经内科抽搐与惊厥.pptx VIP
- 小学生心理辅导(小学教育专业)PPT完整全套教学课件.pptx VIP
- 《马克思主义与社会科学方法论》.pptx VIP
- 第一章 气体PVT关系.ppt VIP
- 一种彻底解决湿法氧化DBC烧结大气泡的方法.pdf VIP
- 高中物理竞赛强基计划真题《光学》考前适应性训练含答案.pdf VIP
- 专题04 光学版块大综合(竞赛强基)真题考前训练 【高中物理竞赛真题强基计划真题考前适应性训练】 (全国竞赛强基计划专用)原卷版.pdf VIP
- 《学前心理学》复习要点备课讲稿.pdf VIP
文档评论(0)