#include <stdio.h>
#include <malloc.h>
struct node
{
int inum;
struct node *next;
};
struct node *create(int n)
{
struct node *head,*p;
int i;
head = (struct node*)malloc(sizeof(struct node));
head->next = NULL;
for(i = 1;i <= n;i++)
{
p = (struct node*)malloc(sizeof(struct node));
scanf("%d",&p->inum);
p->next = head->next;
head->next = p;
}
return (head);
}
void del(struct node *head,int n)
{
struct node *p,*q,*t;
p = head->next;
while(p != NULL)
{
q = p;
t = p->next;
while(t!= NULL)
{
if(p->inum == t->inum)
{
q->next = t->next;
t = t->next;
n = n-1;
}else
{
q = q->next;
t = t->next;
}
}
p = p->next;
}
printf("%d\n",n);
}
void print(struct node *head)
{
struct node *p;
p = head->next;
while(p->next != NULL)
{
printf("%d ",p->inum);
p = p->next;
}
printf("%d\n",p->inum);
}
int main()
{
struct node *Head;
int num;
scanf("%d",&num);
Head = create(num);
printf("%d\n",num);
print(Head);
del(Head,num);
print(Head);
return 0;
}
sdut.acm 2012级《程序设计基础Ⅱ)》_链表 数据结构实验之链表七:单链表中重复元素的删除
最新推荐文章于 2022-11-19 15:04:48 发布