归并两个线性表

来源:百度知道 编辑:UC知道 时间:2024/05/06 21:12:58
巳知线性表LA和线性表LB中的数据元素按值非递减有序排列,现要求将LA和LB归并为一个新的线性表LC,且LC中的元素仍按值非递减有序排列。
只要程序,不要算法。
谢谢!

#include <stdio.h>
#include <stdlib.h>

//节点结构
struct LinkList
{
int data;
struct LinkList * next;
};

void main()
{
int a[8]={1,3,4,7,7,8,34,45};
int b[9]={1,2,4,7,9,12,33,43,56};

LinkList *pa=NULL;
LinkList *pb=NULL;
LinkList *pc=NULL;
LinkList *la=NULL;//la,lb,lc保存链表首地址
LinkList *lb=NULL;
LinkList *lc=NULL;

// 初始化单链表
for(int i=7;i>=0;i--)
{
pa=(LinkList *) malloc(sizeof(struct LinkList));
pa->data=a[i];
pa->next=la;
la=pa;
}

for(int j=8;j>=0;j--)
{
pb=(LinkList *) malloc(sizeof(struct LinkList));
pb->data=b[j];
pb->next = lb;
lb=pb;
}

lc=pc=(LinkList *) malloc(sizeof(struct LinkList));//LC指向单链表的头节点

//递增排序
while(pa && pb)
{
if( (pa->data) <= (pb->data)