将两个单链表按非递减排序,编译没错,就是运行不出来
#include
#include
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; inext=s;
p=p->next;
scanf("%d",&p->data);
}
p->next=NULL;
printf("请输入第二个线性表的长度:");
scanf("%d",&blength);
printf("请输入第二个线性表的数据:");
for(j=1; jnext=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->datadata)
{
pc->next=pa;
pc=pa;
pa=pa->next;
}
else
{
pc->next=pb;
pc=pb;
pb=pb->next;
}
}
pc->next=pa?pa:pb;
free(Lb);
} |
免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。
版权声明:作者保留权利,不代表天盟立场。
|
|
|
|