7-10 链表去重(25 分)

2023-10-26

给定一个带整数键值的链表 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 5
99999 -7 87654
23854 -15 00000
87654 15 -1
00000 -15 99999
00100 21 23854

输出样例:

00100 21 23854
23854 -15 99999
99999 -7 -1
00000 -15 87654
87654 15 -1
#include <iostream>
#include <algorithm>
#include <string.h>
#include <math.h>
using namespace std;

struct node{
	int key;
	int next;
};

node a1[100005];
int a2[100005],a3[100005];
bool flag[100005];

int main(){
	
	int m,n;
	cin>>m>>n;
	
	int addr,key,next;
	for(int i=0;i<n;i++){
		cin>>addr;
		cin>>a1[addr].key;
		cin>>a1[addr].next;
	}	
	
	memset(flag,true,sizeof(flag));
	
	int k1=0,k2=0;
	for(int i=m;i!=-1;i=a1[i].next){
		int q = abs(a1[i].key);
		if(flag[q]){
			flag[q] = false;
			a2[k1++] = i;
		}
		else{
			a3[k2++] = i;
		}
	}
	
	printf("%05d %d ",a2[0],a1[a2[0]].key);
	for(int i=1;i<k1;i++){
		printf("%05d\n",a2[i]);
		printf("%05d %d ",a2[i],a1[a2[i]].key);
	}
	printf("-1\n");
	
	if(k2){
		printf("%05d %d ",a3[0],a1[a3[0]].key);
		for(int i=1;i<k2;i++){
			printf("%05d\n",a3[i]);
			printf("%05d %d ",a3[i],a1[a3[i]].key);
		}
		printf("-1\n");
	}
	
	return 0;
} 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

7-10 链表去重(25 分) 的相关文章

  • 【PAT】B1019 数字黑洞

    给定任一个各位数字不完全相同的 4 位正整数 xff0c 如果我们先把 4 个数字按非递增排序 xff0c 再按非递减排序 xff0c 然后用第 1 个数字减第 2 个数字 xff0c 将得到一个新的数字 一直重复这样做 xff0c 我们很
  • pat(甲级)1004(dfs)

    1004 Counting Leaves 30 xff08 30 分 xff09 A family hierarchy is usually presented by a pedigree tree Your job is to count
  • PAT

    1045 快速排序 25分 著名的快速排序算法里有一个经典的划分过程 我们通常采用某种方法取一个元素作为主元 通过交换 把比主元小的元素放到它的左边 比主元大的元素放到它的右边 给定划分后的 N 个互不相同的正整数的排列 请问有多少个元素可
  • 7-1 用格里高利公式求给定精度的PI值 (15分)

    教育超市 浙大版 C语言程序设计 第3版 第4章 循环结构 练习4 1 用格里高利公式求 的近似值 本题要求编写程序 计算序列部分和 4 1 1 3 1 5 1 7 直到最后一项的绝对值小于给定精度eps 输入格式 输入在一行中给出一个正实
  • L1-095 分寝室PTA

    学校新建了宿舍楼 共有 n 间寝室 等待分配的学生中 有女生 n0 位 男生 n1 位 所有待分配的学生都必须分到一间寝室 所有的寝室都要分出去 最后不能有寝室留空 现请你写程序完成寝室的自动分配 分配规则如下 男女生不能混住 不允许单人住
  • PAT乙级刷题之路1055 集体照 (25分)

    1055 集体照 25分 拍集体照时队形很重要 这里对给定的 N 个人 K 排的队形设计排队规则如下 每排人数为 N K 向下取整 多出来的人全部站在最后一排 后排所有人的个子都不比前排任何人矮 每排中最高者站中间 中间位置为 m 2 1
  • 7-7 12-24小时制 (15 分) (C语言实现)

    题目 思路 直接跟着题目往下写 没有过多思考 后面答案部分正确 才重新写了12点那里的程序 11min 代码 include
  • PAT-1059 C语言竞赛

    1059 C语言竞赛 20 分 C 语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛 既然竞赛主旨是为了好玩 颁奖规则也就制定得很滑稽 0 冠军将赢得一份 神秘大奖 比如很巨大的一本学生研究论文集 1 排名为素数的学生将赢得最好的奖品 小黄
  • Pat刷题真题乙级(4)

    标题 前言 Pat乙级1013 组个最小数 Pat乙级1014 科学计数法 Pat乙级1017 打印沙漏 Pat乙级1018 人口普查 Pat乙级1019 旧键盘 前言 这个周末花了两天才写了五道题 嘿嘿 康康吧 Pat乙级1013 组个最
  • PAT : PAT (Basic Level) Practice(中文)答案(1001 ~ 1095)(纯C编写)

    题目集地址 报名了12月的PAT B 先试试水 已完成 2018 10 22 2018 11 14 更新 2018 12 09 PAT乙级考试100分 考试代码已更新 冬天坐火车跑去考试冻懵了 来年对战PAT甲级考试 目录 目录 题目集地址
  • L1-029. 是不是太胖了

    据说一个人的标准体重应该是其身高 单位 厘米 减去100 再乘以0 9所得到的公斤数 已知市斤是公斤的两倍 现给定某人身高 请你计算其标准体重应该是多少 顺便也悄悄给自己算一下吧 输入格式 输入第一行给出一个正整数H 100 lt H lt
  • PAT B1016 部分A+B (15 分)(C语言实现)

    PAT B1016 部分A B 15 分 C语言实现 问题描述 正整数 A 的 D A 为 1 位整数 部分 定义为由 A 中所有 D A 组成的新整数 P A 例如 给定 A 3862767 D A 6 则 A 的 6 部分 P A 是
  • PAT 1018 锤子剪刀布 (20分)

    1018 锤子剪刀布 20分 大家应该都会玩 锤子剪刀布 的游戏 两人同时给出手势 胜负规则如图所示 现给出两人的交锋记录 请统计双方的胜 平 负次数 并且给出双方分别出什么手势的胜算最大 输入格式 输入第 1 行给出正整数 N 10 5
  • 【PAT甲级】1074 Reversing Linked List (25 point(s))

    Given a constant K K K and a singly linked list L L L you are supposed to reverse the links of every
  • 1007. 素数对猜想 (20)

    让我们定义 dn 为 dn pn 1 pn 其中 pi 是第i个素数 显然有 d1 1 且对于n gt 1有 dn 是偶数 素数对 猜想 认为 存在无穷多对相邻且差为2的素数 现给定任意正整数N lt 105 请计算不超过N的满足猜想的素数
  • 【PAT乙级】旧键盘打字

    题目描述 旧键盘上坏了几个键 于是在敲一段文字的时候 对应的字符就不会出现 现在给出应该输入的一段文字 以及坏掉的那些键 打出的结果文字会是怎样 输入格式 输入在 2 行中分别给出坏掉的那些键 以及应该输入的文字 其中对应英文字母的坏键以大
  • 【PAT乙级】锤子剪刀布

    题目描述 大家应该都会玩 锤子剪刀布 的游戏 两人同时给出手势 胜负规则如图所示 现给出两人的交锋记录 请统计双方的胜 平 负次数 并且给出双方分别出什么手势的胜算最大 输入格式 输入第 1 行给出正整数 N 10 5 即双方交锋的次数 随
  • 8-0. 查找整数(10)

    本题要求从输入的N个整数中查找给定的X 如果找到 输出X的位置 从0开始数 如果没有找到 输出 Not Found 输入格式 输入在第1行中给出2个正整数N lt 20 和X 第2行给出N个整数 数字均不超过长整型 其间以空格分隔 输出格式
  • 【PAT】B1032 挖掘机技术哪家强 (20 分)_C语言实现

    1 挖掘机技术哪家强 20 分 为了用事实说明挖掘机技术到底哪家强 P A T PAT PAT 组织了一场挖掘机技能大赛 现请你根据比赛结果统计出技术最强的那个学校 输入格式 输入在第 1
  • 1051. 复数乘法 (15)

    复数可以写成 A Bi 的常规形式 其中A是实部 B是虚部 i是虚数单位 满足i2 1 也可以写成极坐标下的指数形式 R e Pi 其中R是复数模 P是辐角 i是虚数单位 其等价于三角形式 R cos P isin P 现给定两个复数的R和

随机推荐

  • zookeeper windows 入门安装和测试

    一 序言 以下是我对zookeeper 的一些理解 zookeeper 作为一个服务注册信息存储的管理工具 好吧 这样说得很抽象 我们举个 栗子 栗子1号 假设我是一家KTV的老板 我同时拥有5家KTV 我肯定得时刻监视我KTV 的情况吧
  • oracle如何insert into 多个values

    oracle如何insert into 多个values 稍微熟悉Oracle的都知道 如果我们想一条SQL语句向表中插入多个值的话 如果如下语句 INSERT INTO 某表 VALUES 各个值 VALUES 各个值 这样会报错的 因为
  • JavaWeb学习笔记(XML语言)

    知识点总结于崔希凡 王泽 广陵散 的JavaWeb视频教程 侵权请联系删除 XML XML 简介 XML的应用 XML常见应用 XML的语法规则 文档声明 元素 标签 定义 属性定义 注释 特殊字符 CDATA区 处理指令 小结 XML约束
  • java 判断能否整除_java编程,键盘输入一个整数,判断能否被5和6整除,再判断能否被5或6整除?...

    展开全部 首先判断能否同时被5和e68a84e8a2ad62616964757a686964616f313333656435666整除 如果不能再单独判断是否能被5或者6整除 import java util Scanner public
  • PostgreSQL 快速上手 安装使用入门

    转载自 http www ruanyifeng com blog 2013 12 getting started with postgresql html 谢谢 PostgreSQL的安装和基本用法 一 安装 首先 安装PostgreSQL
  • Linux 一“文”搞定Shell编程

    又到了毕业季 又得去找实习工作 最近在某直聘软件上找实习工作 看到有许多工作都需要会Shell编程的 然后自己对Shell编程也是一知半解 所以趁着最后还有半个月在校时间 索性学习一下 Shell是一个命令行解释器 它接收应用程序或用户命令
  • salesforce-潜在客户Lead的视图管理

    当我们收集到一些Lead数据之后 我们需要对这些Lead进行跟踪和管理 如何快速找到自己想要的信息呢 如下图 salesforce的默认视图只提供了一些标准字段信息 那么 我们就需要对视图进行自定义了 新建视图 点击页面右上角的设置图标 在
  • numpy 删除指定行和多行

    aa np arange 12 reshape 4 3 gt gt array 0 1 2 3 4 5 6 7 8 9 10 11 删除a中第1行至第2行的数据 np delete a np s 1 3 axis 0 gt gt array
  • Java 实现 HTTP 请求的四种方式,你都学会了么?

    前言 在日常工作和学习中 有很多地方都需要发送HTTP请求 本文以Java为例 总结发送HTTP请求的多种方式 HTTP请求实现过程 GET 创建远程连接 设置连接方式 get post put 设置连接超时时间 设置响应读取时间 发起请求
  • 反转链表go语言手撕(Goland上编写)

    在Goland上手写反转链表 并且写出例子运行一下 好久没写力扣 有点手生了 面试官说 如果我好久没写这个 就最好不要在简历上写 他说他是希望我能够手撕算法的 算是积累经验了 package main import fmt type Lis
  • HTTP抓包利器Fiddler基础及进阶教程(三)

    HTTP抓包利器Fiddler基础及进阶教程 二 手机端抓包 强制全局代理 在第二个这里说到为什么无法抓包到小红书的 因为这个关系到ssl ping 绕过SSL JustTrustMe 基于Xposed一个模块 github已开源 可以禁用
  • iptables知识手册

    iptables 所在目录 etc sysconfig iptables 安装iptables服务 yum yinstalliptables services systemctl start iptables iptables基础知识 ip
  • HTTP协议之数据包头信息

    普通的嗅探器 网络抓包工具都做了相应的处理 一般抓到的http数据包都是经过处理的 基本上看不到底层的socket传输信息 我现在想做的是用socket模拟浏览器实现网页通讯 但是 经过抓包发现 在发送GET请求前已经发送了两个数据包 一个
  • NFTScan 浏览器正式版上线 2 周年!

    NFTScan 成立于 2021 年 4 月份 总部位于香港 在 2021 年的 7 月份 NFTScan 团队对外发布了 NFTScan 浏览器公测版 并在同年的 9 月 4 号 对外发布了 NFTScan 浏览器正式版 同步启用了全球品
  • SqlServer数据迁移Pgsql方案

    将SqlServer数据库迁移到pgsql 分别尝试了以下几种方案 最终用方法四解决 示例的版本说明 SQLserver2012 pgsql 10 Navicat Premium15 方法一 Sqlserver链接服务器 不支持大数据迁移
  • 什么是结构体【详解】

    本期介绍 主要介绍 什么是结构体 结构体的声明 定义 初始化 以及传参 匿名结构体类型 如何通过结构体来实现链表数据结构 结构体在内存中是如何存储的 即 结构体内存对齐 什么是内存对齐 文章目录 一 什么是结构体 二 结构体的声明 定义 初
  • 系统更新荣耀play服务器,华为宣布:荣耀Play推送EMUI 9.1正式版更新!

    原标题 华为宣布 荣耀Play推送EMUI 9 1正式版更新 如今 华为 小米 OPPO vivo 一加 联想等智能手机厂商不仅在硬件配置上激烈较量 比如手机运行内存就从6GB 8GB提升到了10GB乃至于12GB 当然 在软件系统上 各大
  • 利用SPI协议读写SD卡

    利用SPI协议模拟SDIO读写SD卡 一 HAL库配置 二 移植并添加工程 一 移植驱动文件 二 修改user diskio c文件 三 main文件配置 四 其他配置及接线 三 实例演示 总结 一 HAL库配置 配置USART1 配置SP
  • 关于华为ensp一些报错处理分享及基础命令

    1 Error Unrecognized command found at position 这里会发现在输入sys按TAb键时不会自动补全 那我们这是就应该反应过来 肯定是哪里有问题了 比如输入system view时报错 你注意看是 l
  • 7-10 链表去重(25 分)

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