#include<stdio.h>
#include<stdlib.h>
struct Node
{
int Data;
struct Node *next;
};
typedef struct Node *List;
typedef struct Node Node;
/*链表的建立*/
List Read()
{
int N;
scanf("%d", &N);
List L = (List)malloc(sizeof(Node));
List tmp = L;
for (int i = 0; i < N; i++) //尾插
{
List p = (List)malloc(sizeof(Node));
scanf("%d", &p->Data); //默认输入顺序从小到大输入
p->next = NULL;
tmp->next = p;
tmp = p;
}
return (L);
}
List Merge(List L1, List L2)
{
List L = (List)malloc(sizeof(Node));
List p1 = L1->next;
List p2 = L2->next;
List p3;
p3 = L1;
while (p1&&p2)
{
if (p1->Data <= p2->Data)
{
p3->next = p1;
p3 = p1;
p1 = p1->next;
}
else
{
p3->next = p2;
p3 = p2;
p2 = p2->next;
}
}
p3->next = p1 ? p1 : p2;
L->next = L1->next;
return(L);
}
void Print(List L)
{
List p = L->next;
if (!p)
printf("NULL ");
while (p)
{
printf("%d ", p->Data);
p = p->next;
}
}
int main()
{
List L1, L2, L;
L1 = Read();
L2 = Read();
L = Merge(L1, L2);
Print(L);
system("pause");
return 0;
}
有序链表的合并(数据结构---单链表)
最新推荐文章于 2023-04-17 10:14:47 发布