简单的链表 可是内存不可读。。。
#include <stdio.h>#include<malloc.h>
typedef struct node
{
int data;
struct node *next;
} link;
void create(struct node *&l,int a[],int n)
{
link *s;int i;
l=(link *)malloc(sizeof(link));
l->next=NULL;
for(i=0;i<n;i++)
{
s=(link *)malloc(sizeof(link));
s->data=a[i];
s->next =l->next;
l->next=s;
}
}
void change (struct node *a,struct node *b,struct node *c)
{
struct node *p=a->next,*q=b->next,*m=c->next;
while(p!=NULL&&q!=NULL)
{
if(p->data<q->data)
{
m->data=p->data;
m=m->next;
p=p->next;
}
else if(p->data>q->data)
{
m->data=q->data;
m=m->next;
q=q->next;
}
else
{
m->data=q->data;
m=m->next;
p=p->next;
q=q->next;
}
}
while(q->next!=NULL)
{
m->next->data=q->data;
m=m->next;
q=q->next;
}
while(p->next!=NULL)
{
m->next->data=p->data;
m=m->next;
p=p->next;
}
m->next=NULL;
}
void displist(link *l)
{
link *r=l;
while(r!=NULL)
{
printf("%d",r->data);
r=r->next;
}
printf("\n");
}
main()
{
int a[3],b[3],c[20]={0};
printf("1\n") ;
for(int i=0;i<3;i++)
{
scanf("%d",&a[i]);
}
printf("2\n") ;
for(int i=0;i<3;i++)
{
scanf("%d",&b[i]);
}
link *k,*h,*n;
create(k,a,3);
create(h,b,3) ;
create(n,c,3);
change(k,h,n);
displist(n) ;
}