将两个升序 的 单链表合成一个降序的链表
我写的程序是这样的,编译没有错误,可是就是不运行 ,不知道怎么回事,请各位帮帮忙,谢谢啦#include<iostream>using namespace std;
typedef int ElemType;
typedef struct LNode
{
ElemType data;
LNode *next;
}*LList;
void ListCreate(LList &L,int n,ElemType A[]);
void ListMerge(LList&a,LList&b,LList&c);
int main()
{
LList a,b,c;
int A[5]={1,3,5,7,9};
int B[5]={2,4,6,8,10};
ListCreate(a,5,A);
ListCreate(b,5,B);
ListMerge(a,b,c);
for(int i=0;i<10;i++)
{
cout<<c->next->data<<endl;
c=c->next;
}
return 0;
}
void ListCreate(LList &L,int n,ElemType A[])
{
LList p;
L=new LNode;
L->next=NULL;
for(int i=n-1;i>=0;i--)
{
p=new LNode;
p->data=A[i];
p->next=L->next;
L->next=p;
}
}
void ListMerge(LList&a,LList&b,LList&c)
{
LList p,q,r,s;
p=a->next;
q=b->next;
c=r=a;
r->next=NULL;
delete b;
while(p&&q)
{
if(p->data<=q->data)
{
s=p;
s->next=r->next;
r=s;
p=p->next;
}
else
{
s=q;
s->next=r->next;
r=s;
q=q->next;
}
}
while(p)
{
s=p;
s->next=r->next;
r=s;
p=p->next;
}
while(q)
{
s=q;
s->next=r->next;
r=s;
q=q->next;
}
}