请编写函数,对线性表进行单值化处理:删除表中重复的数据元素。

函数原型

void LListUnique(LLIST *list);

说明:参数 list 是指示线性表(单链表)的指针,函数将对 list 所指线性表进行单值化处理:每个数据元素只保留第 1 个,后面与之重复的数据元素都被删去。

修改主函数,对以上函数进行测试。


int main() {
LLIST a;
LListCreate(&a);
LListInput(&a);
LListUnique(&a);LListOutput(&a);
putchar('\n');
LListDestroy(&a);
return 0;
}

输入样例

( 2.8, 4.7, 5.2, 2.8, 3.6, 4.7, 5.2, 4.7, 2.8, 2.8, 9.5, 4.7, 3.6, 2.8, 4.7, 9.5 )

输出样例

( 2.8, 4.7, 5.2, 3.6, 9.5 )

思路的话,平台上有许多大佬已经给出,在这里提示一下,由于是数据结构单链表,每删除一个节点后,要让头结点里的length个数减少。

函数实现如下:

void LListUnique(LLIST *list)
{LNODE *p=list->head->next;//头结点的指针域才指向第一个元素LNODE *pre=NULL;//被检测的元素的前驱节点LNODE *r,*t;//r是被检测元素,t是临时用来做为媒介删除的while(p){r=p->next;pre=p;while(r){if(LElementEq( &r->data, &p->data)==1){pre->next=r->next;t=r;r=r->next;free(t); list->length--;}else{pre=r;r=r->next;}}p=p->next;}
}

PTA单链表 - 20. 单值化(去重)相关推荐

  1. [PTA]单链表基本操作

    请编写程序实现单链表插入.删除结点等基本算法.给定一个单链表和一系列插入.删除结点的操作序列,输出实施上述操作后的链表.单链表数据域值为整数. 输入格式: 输入第1行为1个正整数n,表示当前单链表长度 ...

  2. PTA 单链表(流浪狗收养所)

    单链表(流浪狗收养所) 怡山小学生物组的同学在课外要收养一批流浪狗.在流浪狗进入收养基地时,课外指导老师会给每一只狗取一个唯一的编号,并且判定它的年龄,让组长输入流浪狗档案.档案以单链表存储,按年龄为 ...

  3. PTA 单链表分段逆转 (12 分)

    单链表分段逆转 (12 分) 给定一个带头结点的单链表和一个整数K,要求你将链表中的每K个结点做一次逆转.例如给定单链表 1→2→3→4→5→6 和 K=3,你需要将链表改造成 3→2→1→6→5→4 ...

  4. PTA 单链表结点删除

    本题要求实现两个函数,分别将读入的数据存储为单链表.将链表中所有存储了某给定值的结点删除.链表结点定义如下: struct ListNode {int data;ListNode *next; }; ...

  5. C语言单链表基本操作,非常全面

    单链表的基本操作分享: /********************* 单链表的常规操作 ****************************/LinkList CreateHeadListH(); ...

  6. pta:6-1单链表逆转(20分)

    大一下半期数据结构 数据结构实践任务2 pta:单链表逆转 这是一个新手小白学数据结构所经历的所有题目集. 本题要求实现一个函数,将给定的单链表逆转. 函数接口定义: List Reverse( Li ...

  7. PTA: 6-5 删除单链表偶数节点 (20 分)

    大一下半期数据结构 数据结构题目集 删除单链表偶数节点 本题要求实现两个函数,分别将读入的数据存储为单链表.将链表中偶数值的结点删除. 链表结点定义如下: struct ListNode {int d ...

  8. PTA 6-1 单链表逆置

    PTA 6-1 单链表逆置* (20 分) 已知单链表的结点结构定义如下: typedef struct NODE { int data; struct NODE *next; } NODE; 说明: ...

  9. PTA 基础编程题目集 6-6 求单链表结点的阶乘和

    PTA 基础编程题目集 6-6 求单链表结点的阶乘和 本题要求实现一个函数,求单链表L结点的阶乘和.这里默认所有结点的值非负,且题目保证结果在int范围内. 函数接口定义: int Factorial ...

最新文章

  1. asp连接mysql odbc,在ASP中连接MySQL数据库的方法,最好的通过ODBC方法
  2. python列表元素修改_python – 如何修改列表中列表中的元素
  3. argv[1] 路径问题
  4. java实现文件名过滤器接口_Java使用文件过滤器FileFilter、FilenameFilter搜索文件
  5. boost::multi_index模块相关的测试程序
  6. CF1479A Searching Local Minimum
  7. db9针232接口波特率标准_理解串口通信以及232,485,422常见问题
  8. apache apr介绍
  9. Asp.Net Core Web Api图片上传(一)集成MongoDB存储实例教程
  10. 后盾网php多少钱_亿多星全脑开发招代理多少钱@山东聊城网
  11. 视频通信系统的关键技术与挑战
  12. 500VIP源码下载
  13. 检查一个字符串是否为回文 回文:正着念与反着念一样,例如:上海自来水来自海上;要求用户从控制台输入一个email地址,然后获取该email的用户名(@之前的内容)
  14. 给微信小程序页面加载背景图片解决方案
  15. 解救小哈(深度优先,广度优先)
  16. 苹果怎么关闭自动更新系统_iPhone系统关闭自动更新教程
  17. 笔记本电脑没有WiFi选项 解决办法
  18. 优达学城计算机视觉pkl,优达学城机器学习工程师纳米学位项目介绍
  19. 涨知识!细数银行卡三要素 API 的 N 种验证方法
  20. 计算机windows7连接打印机

热门文章

  1. Dubbo解析及原理浅析
  2. 用exec()函数执行新程序
  3. 苹果展开新显示器带动高阶需求:Mini LED背光技术
  4. SQL语句(四)联表查询
  5. 1.初识C语言----什么是C语言,为什么要学C语言?
  6. maven jar包导入失败,Cannot resolve XXXXXXX
  7. ISO七层模型和TCP/IP四层模型
  8. FL Studio教程之Wasp XT合成器功能介绍
  9. 实用,一键生成数据库文档
  10. python:文档转换(只支持Windows操作系统)