【模拟】L2-002 链表去重(25分)
发布日期:2022-03-09 00:49:18 浏览次数:71 分类:技术文章

本文共 1227 字,大约阅读时间需要 4 分钟。

题目要求:

给定一个带整数键值的链表 L,你需要把其中绝对值重复的键值结点删掉。即对每个键值 K,只有第一个绝对值等于 K 的结点被保留。同时,所有被删除的结点须被保存在另一个链表上。例如给定 L 为 21→-15→-15→-7→15,你需要输出去重后的链表 21→-15→-7,还有被删除的链表 -15→15。

输入格式:

输入在第一行给出 L 的第一个结点的地址和一个正整数 N(≤10​5​​,为结点总数)。一个结点的地址是非负的 5 位整数,空地址 NULL 用 -1 来表示。

随后 N 行,每行按以下格式描述一个结点:

地址 键值 下一个结点

其中地址是该结点的地址,键值是绝对值不超过10​4​​的整数,下一个结点是下个结点的地址。

输出格式:

首先输出去重后的链表,然后输出被删除的链表。每个结点占一行,按输入的格式输出。

输入样例:

00100 599999 -7 8765423854 -15 0000087654 15 -100000 -15 9999900100 21 23854

输出样例:

00100 21 2385423854 -15 9999999999 -7 -100000 -15 8765487654 15 -1

思路:

这是一道链表的模拟题,我们只需要开一个数组,以下标表示其地址即可。

AC代码如下:

#include
using namespace std;int lian[100010][2], a[10005], qc[100010];int main(){ int head, n, x, y, z; cin >> head >> n; int q=n; while(q--) { cin >> x >> y >> z;//依次存入,x为当前节点地址(下标) lian[x][0]=y;//y为键值 lian[x][1]=z;//z为下一节点地址 } int dz=head;//存入头结点 while(n--) { int sum; sum=abs(lian[dz][0]); if(a[sum]==0) qc[dz]=1; a[sum]=1; dz=lian[dz][1]; } dz=head; printf("%05d %d ",head,lian[head][0]); qc[head]=0; while(dz!=-1) { if(qc[dz]==1) printf("%05d\n%05d %d ",dz, dz, lian[dz][0]); dz=lian[dz][1]; } cout<<"-1"<

 

转载地址:https://blog.csdn.net/m0_57835344/article/details/117932279 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Mybatis中typeAiases的三种用法
下一篇:Openstack的安装及配置-----02基础环境配置

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年03月21日 03时16分51秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

rust和gta5哪个吃配置_盘点4款Steam“自由度”很高的游戏,GTA5众所周知,目前最热门... 2019-04-21
es审计日志_elasticsearch 事务日志translog 2019-04-21
dw1510_超低温种子储存柜 2019-04-21
文件未找到mathpage.wll_解决MathPage.wll文件找不到的问题(找了好久的良心之作)... 2019-04-21
广州刷脸支付骗局_刷脸支付是骗局?那可能你还不了解刷脸支付 2019-04-21
java 远程调试 端口_JAVA远程调试 2019-04-21
java 使用或覆盖了已过时的api_JAVA使用或覆盖了已过时的 API 2019-04-21
java 图片旋转保存_Java 对图片90度旋转 2019-04-21
用java实现文学研究助手_数据结构文学研究助手 C语言代码实现(带源码+解析)... 2019-04-21
java gc的几种方式_GC 的三种基本实现方式 2019-04-21
wget linux java 32_通过wget在Linux上下载Java JDK会显示在许可证页面上 2019-04-21
babylonjs 设置面板位置_babylonjs 空间坐标转为屏幕坐标 2019-04-21
oracle里面如何查询sqlid,CSS_oracle中如何查看sql, --查询表状态:  select uo.O - phpStudy... 2019-04-21
oracle 查询中用case,oracle case when 在查询时候的用法。 2019-04-21
oracle正在运行的程序包,ORACLE PL/SQL编程详解之程序包的创建与应用 2019-04-21
php局部页面滚动,在访问另一页面后保留浏览器滚动位置 - php 2019-04-21
jmeter运行linux命令行,Jmeter在linux上运行(命令行运行Jmeter) 2019-04-21
linux服务器怎么添加站点,如何增加站点或虚拟主机及文件说明 2019-04-21
linux系统输入指令,Linux系统基础 - 基本操作命令 2019-04-21
linux设备管理命令,Linux命令(设备管理).doc 2019-04-21