swust oj 941
题目描述
已知两非递减的顺序线性表,要求合并成一个新的非递减顺序线性表。(测试数据为整型)
输入
输出
样例输入
样例输出
using namespace std;
typedef struct LNode{
int data;
struct LNode next;
}LNode,LinkList;
void InitList(LinkList &L,int n)//尾插法创建单链表的函数,赋值我测试过了没问题,数值确实存在了链表里面
{
LinkList r=L;
for(int i=0;i<n;i++)
{
LinkList p=new LNode;
cin>>p->data;
p->next=NULL;
r->next=p;
r=p;
}
}
void AddList(LinkList &L1,LinkList &L2)//合并两个单链表的函数
{
LinkList p4=new LNode;
LinkList p1,p2,p3,r;//r为当p1->datap2->data时,因为我们只把p1连接到p3,所以用r保存p2,并在p2往下走之后释放原p2空间
p1=L1->next;
p2=L2->next;
p3=L1;
p4=L1;
while(L1&&L2)
{
if(p1->data
{
p3->next=p1;
p3=p1;
p1=p1->next;
}
else if(p1->data
{
p3->next=p1;
p3=p1;
p1=p1->next;
r=p2;
p2=p2->next;
delete r;
}
else
{
p3->next=p2;
p3=p2;
p2=p2->next;
}
}
p3->next=p1?p1:p2;
delete L2;
for(p4;p4;p4=p4->next)//输出合并了的链表
{
cout<
}
cout<<endl;
}
int main()
{
int n,m;
LinkList L1=new LNode;
LinkList L2=new LNode;
L1->next=NULL;
L2->next=NULL;
cin>>n;
InitList(L1,n);
cin>>m;
InitList(L2,m);
AddList(L1,L2);
return 0;
}
问题是没有输出结果,把两组测试数据输入后按回车直接就不给输出结果,但是程序终止运行了。不管能不能得到解答,我都感谢每一位划过的人。