为了账号安全,请及时绑定邮箱和手机立即绑定

将两个单链表按非递减排序,编译没错,就是运行不出来

将两个单链表按非递减排序,编译没错,就是运行不出来

C
慕少2215682 2016-09-21 22:01:40
#include<stdio.h>#include<stdlib.h>typedef struct LNode{ int data; struct LNode *next;}LNode,*LinkList;int main(){ void MergeList(LinkList La,LinkList Lb,LinkList Lc); LNode a,b; LinkList p,q,w,s,head1,head2; int alength=0,blength=0,i,j; p=&a; q=&b;    w=NULL; head1=p; head2=q;    //p=(LinkList)malloc(sizeof(LNode));  printf("请输入第一个线性表的长度:"); scanf("%d",&alength); printf("请输入第一个线性表的数据:"); for(i=1; i<=alength;i++) {  s=(LinkList)malloc(sizeof(LNode));  p->next=s;  p=p->next;  scanf("%d",&p->data); } p->next=NULL; printf("请输入第二个线性表的长度:"); scanf("%d",&blength); printf("请输入第二个线性表的数据:"); for(j=1; j<=blength;j++) {  s=(LinkList)malloc(sizeof(LNode));  q->next=s;  q=q->next;  scanf("%d",&q->data); } q->next=NULL;    MergeList(head1,head2,w); while(head1->next!=NULL) {  printf("%d",head1->next->data);  head1=head1->next; } return 0;}void MergeList(LinkList La,LinkList Lb,LinkList Lc){ LinkList pa,pb,pc; pa=La->next;pb=Lb->next; Lc=pc=La; 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;  } } pc->next=pa?pa:pb; free(Lb); }
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 1321 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信