#include<stdio.h>
#include<stdlib.h>
typedef struct Node
{
int data;
struct Node*next;
}node,*Llist;
Llist creat(int n)
{
int i;
Llist head,p,q;
head=(node*)malloc(sizeof(node));
p=q=head;
head->next=NULL;
for(i=0;i<n;i++)
{
p=(node*)malloc(sizeof(node));
scanf("%d",&p->data);
p->next=q->next;
q->next=p;
q=p;
}
return head;
}//建立链表函数//
int main()
{
Llist la,lb,lc;
node *p,*q,*r;
int m,n;
printf("请分别输入A与B链表的长度:");
scanf("%d%d",&m,&n);
printf("请输入A链表的数据(递增):");
la=creat(m);
printf("请输入B链表的数据(递增):");
lb=creat(n);
q=la;
p=la->next;
r=lb->next;
while(p!=NULL&&r!=NULL)
{
if((p->data)==(r->data))
{
q->next=p->next;
free(p);
p=q->next;
r=r->next;
}//当两值相等时均向后移动一位,并释放A中相等结点//
else if((p->data)<(r->data))
{
q=p;
p=p->next;
}//a链表中结点小于b时,a向后移动一位//
else
r=r->next;//b链表中结点小于a时,b向后移动一位//
}
lc=la;
p=lc->next;
printf("A-B的结果为:");
while(p!=NULL)
{
printf("%d ",p->data);
p=p->next;
}
return 0;
}
追问不行啊,运行不了