合并有序的单链表c语言,有序表的合并(c语言)

#define ElemType int

typedef struct LNode{

ElemType data;

struct LNode * next;

}LNode, * Linklist;

#define NULL 0

#include

#include

void creat_L (Linklist &L)

{ElemType n,i;

Linklist Last,p;

L=(Linklist)malloc(sizeof(LNode));

Last=L;

printf("请输入表长:");

scanf("%d",&n);

printf("\n请输入元素:");

for(i=1;i<=n;i++)

{

p=(Linklist)malloc(sizeof(LNode));

scanf("%d",&p->data);

Last->next=p;

Last=p;

}

Last->next=NULL;

}

void merge_l(Linklist La,Linklist Lb,Linklist &Lc)

{Linklist pc,pb,pa;

Lc=pc=La; pa=La->next; pb=Lb->next;

while(pa&&pb)

if(pa->data<=pb->data)

{pc->next=pa; pc=pa; pa=pa->next;}

else {pc->next=pb; pc=pb; pb=pb->next;}

if(pa) pc->next=pa;

else pc->next=pb;

free(Lb);

}

void print(Linklist L)

{Linklist p;

for(p=L->next;p;p=p->next)

printf("%d ",p->data);

}

void main()

{Linklist La,Lb,Lc;

creat_L (La);

printf("单链表La:\n");

print(La);

creat_L(Lb);

printf("\n");

printf("\n单链表Lb:\n");

print(Lb);

merge_l(La,Lb,Lc);

printf("\n单链表Lc:");

print(Lc);

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值