问题及代码:
/*
* Copyright (c)2016,烟台大学计算机与控制工程学院
* All rights reserved.
* 文件名称:项目3.cpp
* 作 者:陈哲
* 完成日期:2016年9月22日
* 版 本 号:v1.0
*问题描述:已知L1和L2分别指向两个单链表的头结点,且已知其长度分别为m、n,
请设计算法将L2连接到L1的后面。实现这个算法,完成测试,并分析这个算法的复杂度。
提示:实现算法时,可以设计下面的函数:void Link(LinkList &L1, LinkList &L2)
*输入描述:无
*程序输出:输出整合后的链表
*/
linklist.h和linklist.cpp详见第四周项目2--建立单链表算法库
main.cpp
#include "linklist.h"
void Link(LinkList *&L1, LinkList *&L2)
{
LinkList *p = L1;
while(p->next !=NULL)
p=p->next;
p->next =L2->next;
}
int main()
{
LinkList *L1,*L2;
ElemType a[8]= {5, 2, 1, 1, 3, 1, 4, 8};
ElemType b[4]= {1,1,2,8};
//尾插法建立
CreateListR(L1, a, 8);
printf("尾插法建表L1结果:");
DispList(L1);
CreateListR(L2, b, 4);
printf("尾插法建表L1结果:");
DispList(L2);
Link(L1,L2);
DispList(L1);
printf("销毁单链表\n");
DestroyList(L1);
return 0;
}
运行结果:
知识点总结:
实现链表的插入。
学习心得:
通过这个项目加深了我对单链表基本运算的理解,进而掌握了链表的插入。