数据结构之链表(c语言实现)
题目:将链表中的重复值的数据使其只出现一次,形成一个新的链表。
#include<stdio.h>
#include<stdlib.h>
typedef struct node{
int data;
struct node * next;
}ElemSN;
ElemSN * Delsomekey(int data[],int n)//此函数使传过来的数据同时“过滤”,建立链表
{
ElemSN *h=NULL,*t,*p;
int i;
for(i=0;i<n;i++)
{
for(p=h;p&&p->data-data[i];p=p->next);//确保p带的数据没有重复值,然后建链
if(!p)
{
p=(ElemSN*)malloc(sizeof(ElemSN));
p->data=data[i];
p->next=NULL;
if(!h)
h=t=p;
else
t=t->next=p;
}
}
return h;
}
void printlink(ElemSN *h)
{
ElemSN *p;
p=h;
for(p=h;p;p=p->next)
printf("%5d",p->data);
}
int main(void)
{
int data[8]={2,2,4,4,5,6,7,7};
ElemSN * head;
head=Delsomekey(data,8);
printlink(head);
}
转载:https://blog.csdn.net/weixin_45558998/article/details/102491500
查看评论