以下是整体代码
#include
struct node
{
int data;
node *next;
};
以下是需要创建的部分
node *merge(node *f1,node *f2)
{
node *f3=new node;
return f3;
}
到这里为止
node *linklist(int a[ ], int n)
{
node *first,*rear,*s;
first=new node;
rear=first;
for (int i=0; i
{
s=new node ;
s->data=a[i];
rear->next=s;
rear=s;
}
rear->next=NULL;
return first;
}
void main()
{int a[5]={2,3,5};
int b[5]={1,2};
node *f1,*f2,*p,*f3;
f1=linklist(a,3);
f2=linklist(b,2);
f3=merge(f1,f2);
p=f3->next;
for(int i=0;i<5;i++)
{coutp=p->next;
}
}
修改如下,供参考:
#include<iostream.h>
using namespace std;
struct node
{
int data;
node *next;
};
//以下是需要创建的部分
struct node *merge(struct node *f1,struct node *f2)
{
struct node *p1 = f1->next,*p2 = f2->next, *pt;
struct node *f3=new node;
f3->next = NULL;
while (p1 && p2){
if (p1->data < p2->data){
pt = p1;
p1=p1->next;
}
else{
pt = p2;
p2=p2->next;
}
pt->next = f3->next;
f3->next = pt;
}
p1 = p1 ? p1 : p2;
while (p1){
pt = p1;
p1=p1->next;
pt->next = f3->next;
f3->next = pt;
}
delete f1;
delete f2;
return f3;
}
//到这里为止
struct node *linklist(int a[], int n)
{
struct node *first,*rear,*s;
first=new node;
rear=first;
for (int i=0; i<n; i++)
{
s=new node ;
s->data=a[i];
rear->next=s;
rear=s;
}
rear->next=NULL;
return first;
}
void main()
{
int a[5]={2,3,5};
int b[5]={1,2};
struct node *f1,*f2,*p,*f3;
f1=linklist(a,3);
f2=linklist(b,2);
f3=merge(f1,f2);
p=f3->next;
for(int i=0;i<5;i++)
{
cout<<p->data<<",";
p=p->next;
}
}