小言_互联网的博客

数据结构之链表(c语言实现),将链表中的重复值的数据使其只出现一次,形成一个新的链表。

312人阅读  评论(0)

数据结构之链表(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
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场