69,381
社区成员
发帖
与我相关
我的任务
分享
# include <stdio.h>
# include <malloc.h>
# define NULL 0
typedef struct node
{
int data;
struct node *next;
}LinkList;
print(LinkList *h)
{
LinkList *p;
for (p=h; p; p=p->next)
printf("%4d", p->data);
}
LinkList *creatlist()
{
LinkList *head, *r, *s;
int x;
head = (LinkList*) malloc (sizeof(LinkList));
r = head;
printf("input integer 0 end\n");
scanf("%d", &x);
while(x != 0)
{
s = (LinkList *) malloc (sizeof(LinkList));
s->data = x;
s->next = NULL;
r->next = s;
r = s;
scanf("%d", &x);
}
r->next = NULL;
s = head;
head = head->next;
free(s);
print(head);
return head;
}
void subs()
{
LinkList *p, *p1, *p2, *q, *heada, *headb;
heada = creatlist();
headb = creatlist();
p = heada;
p1 = p;
while(p != NULL)
{
q = headb;
while(q !=NULL && q->data != p->data)
q = q->next;
if(q !=NULL)
{
if(p == heada)
{
heada = heada->next;
p = p1 = heada;
}
else if(p->next == NULL)
{
p1->next = NULL;
p = p->next;
}
else
{
p1->next = p->next;
p2 = p->next;
free(p);
p = p2;
}
}
else
{
p1 = p;
p = p->next;
}
}
p = heada;
if(p == NULL)
printf("result is null\n");
else
printf("result is:\n");
while(p != NULL)
{
printf("%4d", p->data);
p = p->next;
}
}
void main()
{
subs();
}