用C++写:将两个递增的有序链表合并为一个递增的有序链表。要求结果链表仍使用原来两个链表的存储空间

2024-12-03 12:48:21
推荐回答(2个)
回答1:

#include
using namespace std;
class LNode
{
private:
int num;
LNode *next;
public:
friend LNode* LNodeCreate();
friend void LNodeSort(LNode *L1,LNode *L2);
};
LNode* LNodeCreate(){
LNode *q,*H,*p;
int size,m;
cout<<"请输入链式线性表元素的个数: ";
cin>>size;
q=H=new LNode;
cout<<"请按从小到大输入线性表的"<for(int i=0;i{
p=new LNode;
cin>>m;
p->num=m;
H->next=p;
H=p;
H-> next= NULL;
H=q;
cout<<"刚创建的线性表为: ";
for(p=H-> next;p!=NULL;p=p-> next)
cout< num<<" ";
cout<return H;
}
}
void LNodeSort(LNode *L1 ,LNode *L2) {
LNode *L3;
LNode *pa,*pb,*pc;
pa=L1->next;
pb=L2->next;
L3=pc=L1;
while(pa&&pb)
{
if(pa->num<=pb->num){
pc->next=pa;
pc=pa;
pa=pa->next;
}
else{
pc->next=pb;
pc=pb;
pb=pb->next;
}
}

if(pc->next=pa)
pc->next=pa;
else
pc->next=pb;
delete(L2);
cout<<"排列后的线性表为:";
for(pc=L3->next;pc!=NULL;pc=pc->next)
cout<num<<" ";
cout<}
int main()
{
LNode *L1,*L2;
L1=LNodeCreate();
L2=LNodeCreate();
LNodeSort(L1,L2);
return 0;
}

回答2:

你这样问不会有人回答的。
你得是真心问问题才有人帮助,而不是像你这样自己一点劳动都不付出。谁会帮你写作业啊?想找帮忙写作业的话把问题挂到58同城上,出价高点自然有人写。