- 23
- 0
- 约4.73千字
- 约 7页
- 2022-06-30 发布于上海
- 举报
(4
(4)链表输出模块;
按从小到大合并两链表
将新链表输出
主程序模块
数据输入
按从大到小合并两链表
将新链表输出
实验题目:线性表的操作
实验目的:1.掌握上机调试线性表的基本方法;
2.掌握线性表的一些基本操作;
实验内容:将两个有序链表合并为一个有序链表一、需求分析
实验程序中先创建两个有序链表,演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入两个链表中的相应数据。
将两个链表合并时可按数据从大到小或从小到大合并,用户根据提示可选择一种排序方式。
程序执行命令包括:
(1)构造链表;(2)输入数据;(3)合并两个链表,根据用户需求选择一种排序方式;(4)将合并结果输出;(5)结束
测试数据:
链表 1 数据为:2,4,6,7,10
链表 2 数据为:1,3,5,6,7,12
按从小到达合并为:1,2,3,4,5,6,6,7,7,10,12; 按从大到小合并为:12,10,7,7,6,6,5,4,3,2,1;
二、概要设计
基本操作
Linklist creat()
操作结果:构造一个链表,并输入数据,返回头节点指针。
void print(Linklist head)
初始条件:链表已存在; 操作结果:将链表输出。
void MergeList_1(Linklist La,Linklist Lb)
初始条件:有序线性链表 La 和 Lb 已存在;
操作结果:将 La 和 Lb 两个链表按从小到大的顺序合并。void MergeList_2(Linklist La,Linklist Lb)
初始条件:有序线性链表 La 和 Lb 已存在;
操作结果:将 La 和 Lb 两个链表按从大到小的顺序合并。
本程序包括四个模块:
主程序模块;
链表数据输入模块;
链表合并模块;
三、详细设计
元素类型,节点类型,指针类型
typedef struct LNode //定义节点
{
int data;
struct LNode *next;
}LNode,* Linklist;
每个模块的分析
(1)主函数模块
int main()
{
Linklist head1,head2; int i;
printf(请输入链表 1 数据(由小到大,输入 0 表示输入结束):\n);
head1=creat(); //创建链表 1,将
头结点指针返回为 head1
printf(请输入链表 2 数据(由小到大,输入 0 表示输入结束):\n); head2=creat();
printf(请选择排序方式(输入 1 则从小到达合并,输入其它整数则按从大到小合
并):);
scanf(%d,i); // 创建链 表
2,将头结点指针返回为 head2
if(i==1) //选择两种排序方式,如果输入 1,则合并后按从小到大输出;输入其它数,合成链表按从大到小输出
{
函数参数
}
else
printf(按小到大将两表合并得:\n);
MergeList1(head1,head2); //将创建好的两表的头结点地址 head1,head2 作为
{ printf(按从大到小将两表合并得:\n);
MergeList2(head1,head2); //将创建好的两表的头结点地址 head1,head2 作为
函数参数
}
return 0;
}
数据输入创建链表模块
Linklist creat()//创建链表函数,并将创建链表的头结点指针返回
{
Linklist head,p,s; int z=1,x;
head=(LNode *) malloc(sizeof(LNode)); p=head;
while(z)
{
scanf(%d,x);
if(x!=0) //输入 0 表示链表数据输入结束
{
}
else
}
s=(LNode *)malloc(sizeof(LNode)); s-data=x;
p-next=s;
s-next=NULL; p=s;
z=0;
return(head);
}
合并链表模块,两个函数分别表示两种排序方式,将链表合并后直接在函数中调用链表输出函数 void print(Linklist head)将链表输出
void MergeList_1(Linklist La,Linklist Lb)
//已知链表 La 和 Lb 元素都按从小到大排列,将 La 和 Lb 合并成新链表,其中元素也按从小到大排列
{
Linklist pa,pb,pc,Lc;
pa = La-next; pb = Lb-next;
Lc = pc = La; //把 La 的头节点作为新建链表 Lc 的头结点while (pa pb)
{
if (pa-data = pb-data
原创力文档

文档评论(0)