Description
(线性表)在一个递增有序的线性表中,有数值相同的元素存在。若存储方式为单链表,设计算法去掉数值相同的元素,使表中不再有重复的元素。
Input
输入长度:6
输入数据:2 3 4 5 5 7
Output
2 3 4 5 7
Sample Input
68 9 10 11 22 22
Sample Output
8 9 10 11 22
/*烟台大学计算机学院 2016 作者: 马春澎 题目名称:oj 2204 删除相同元素(线性表) 完成日期:2017年3月24日 */ #include <stdio.h> #include<malloc.h> typedef int ElemType; typedef struct LNode { ElemType data; struct LNode *next; } LinkList; void InitList(LinkList *&L) { L=(LinkList *)malloc(sizeof(LinkList)); L->next=NULL; } void Insert(LinkList *&L,int x) { LinkList *s,*p; p=L; while(p->next!=NULL) p=p->next; s=p; p=(LinkList*)malloc(sizeof(LinkList)); p->data=x; s->next=p; p->next=NULL; } void Delete(LinkList *&L) { LinkList *p=L->next,*q; while(p->next!=NULL) { if(p->data==p->next->data) { q=p->next; p->next=q->next; free(q); } else p=p->next; } } void Print(LinkList *&L) { LinkList *p=L->next; while(p!=NULL) { printf("%d ",p->data); p=p->next; } } int main() { int n,i,a[20]; scanf("%d",&n); LinkList *L; InitList(L); for(i=0; i<n; i++) { scanf("%d",&a[i]); Insert(L,a[i]); } Delete(L); Print(L); return 0; }
本文介绍了一种针对递增有序单链表的去重算法,该算法能有效移除链表中所有数值重复的元素,确保每个数值仅出现一次。通过示例展示了输入输出效果,并提供了完整的C语言实现代码。
5322

被折叠的 条评论
为什么被折叠?



