解题思路:
注意事项:
参考代码:
#include <stdio.h>
#include <stdlib.h>
#define len sizeof(num)
typedef struct s{
int data;
struct s *next;
}num;
num *creat(int n){ //创建链表
num *p,*h,*t;
t=h=NULL;
for (int i=0;i<n;i++){
p=(num *)malloc(len);
scanf ("%d",&p->data);
p->next=NULL;
if (h==NULL){
h=p;
}else{
t->next=p;
}
t=p;
}
return h;
}
int find(num *h,int n){ //查找是否有相同的元素
num *i;
for (i=h;i;i=i->next){
if (i->data==n){
return 1;
}
}
return 0;
}
num *insert(num *h,int n){ //链表尾部插入
num *i;
num *p;
p=(num *)malloc(len);
p->data=n;
p->next=NULL;
for (i=h;i->next;i=i->next){
;
}
i->next=p;
return h;
}
void print(num *h){ //打印链表
num *i;
for (i=h;i;i=i->next){
printf ("%d ",i->data);
}
printf ("\n");
}
int main (){
num *i;
num *h,*t;
int n,m;
while (scanf ("%d",&n)!=EOF){
h=creat(n);
print(h);
scanf ("%d",&m);
t=creat(m);
print(t);
while (t){
if (find(h,t->data)==0){
h=insert(h,t->data);
}
t=t->next;
print(h);
}
printf ("\n");
}
}
0.0分
0 人评分