当前位置: 首页 > news >正文

PAT甲级1052、Linked LIst Sorting

题目

A linked list consists of a series of structures, which are not necessarily adjacent in memory. We assume that each structure contains an integer key and a Next pointer to the next structure. Now given a linked list, you are supposed to sort the structures according to their key values in increasing order.

Input Specification:

Each input file contains one test case. For each case, the first line contains a positive N (<10^5) and an address of the head node, where N is the total number of nodes in memory and the address of a node is a 5-digit positive integer. NULL is represented by −1.

Then N lines follow, each describes a node in the format:

Address Key Next

where Address is the address of the node in memory, Key is an integer in [−10^5,10^5], and Next is the address of the next node. It is guaranteed that all the keys are distinct and there is no cycle in the linked list starting from the head node.

Output Specification:

For each test case, the output format is the same as that of the input, where N is the total number of nodes in the list and all the nodes must be sorted order.

Sample Input:

5 00001
11111 100 -1
00001 0 22222
33333 100000 11111
12345 -1 33333
22222 1000 12345

Sample Output:

5 12345
12345 -1 00001
00001 0 11111
11111 100 22222
22222 1000 33333
33333 100000 -1

思路

这个题和1032那个题差不多,都是用到了静态链表,可以总结一下,先说思路吧

明显要用到排序,sort函数比较一下就好了

关键是要重排链表,在输出中next这一部分和输入时是不一样的,幸好不是指针链表,不然只能强行冒泡了

关键点有两个:

1、题目中说的是“有n个节点在内存中”,并不一定有n个节点在链表中

2、n可以为0,又是这个玩意,以后还是默认positive包括0吧

#include <iostream>
#include <iomanip>
#include <algorithm>
using namespace std;
struct Node{int addr;int key;int next;bool flag;
}node[100005];bool cmp(Node a,Node b)
{if(a.flag == false || b.flag == false)return a.flag > b.flag;elsereturn a.key < b.key;
}
int main()
{int n,L;cin>>n>>L;for(int i=0;i<100005;i++)node[i].flag = false;for(int i=0;i<n;i++){int add,k,nex;cin>>add>>k>>nex;node[add].addr = add;node[add].key = k;node[add].next = nex;}int cnt = 0;for(int i=L;i!=-1;){node[i].flag = true;cnt++;i=node[i].next;}sort(node, node+100005, cmp);if(cnt)cout<<cnt<<" "<<setw(5)<<setfill('0')<<node[0].addr<<endl;elsecout<<"0 -1"<<endl;for(int i=0;i<cnt;i++){cout<<setw(5)<<setfill('0')<<node[i].addr<<" "<<node[i].key<<" ";if(node[i+1].flag == false)cout<<"-1"<<endl;elsecout<<setw(5)<<setfill('0')<<node[i+1].addr<<endl;}
}

总结

静态链表首先要求总的节点数量(地址)不能太大,这样才能定义一个大数组

然后要求地址不连续,甚至是相当稀疏的

最后是在指针链表不太方便做的时候可以用,比如说大量的交换节点顺序、查询比较信息这些频繁使用链表信息的操作

顺带补一句

在1032那个题中我感觉用静态链表是输入格式的问题,输入的地址是离散的,毫无顺序的,也就是说无法轻易地构建指针链表,所以一开始就分配好空间的静态链表比较合适

所以我感觉看输入格式可能是最有效的方法

相关文章:

PAT甲级1052、Linked LIst Sorting

题目 A linked list consists of a series of structures, which are not necessarily adjacent in memory. We assume that each structure contains an integer key and a Next pointer to the next structure. Now given a linked list, you are supposed to sort the stru…...

git error: invalid path

git clone GitHub - guanpengchn/awesome-books: :books: 开发者推荐阅读的书籍 在windows上想把这个仓库拉取下来&#xff0c;发现本地git仓库创建 但只有一个.git隐藏文件夹&#xff0c;其他文件都处于删除状态。 问题&#xff1a; Cloning into awesome-books... remote:…...

优选算法合集————双指针(专题二)

好久都没给大家带来算法专题啦&#xff0c;今天给大家带来滑动窗口专题的训练 题目一&#xff1a;长度最小的子数组 题目描述&#xff1a; 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl1, …...

Ubuntu下Tkinter绑定数字小键盘上的回车键(PySide6类似)

设计了一个tkinter程序&#xff0c;在Win下绑定回车键&#xff0c;直接绑定"<Return>"就可以使用主键盘和小键盘的回车键直接“提交”&#xff0c;到了ubuntu下就不行了。经过搜索&#xff0c;发现ubuntu下主键盘和数字小键盘的回车键&#xff0c;名称不一样。…...

使用arcpy列表函数

本节将以ListFeatureClasses()为例,学习如何使用arcpy中的列表函数. 操作方法: 1.打开IDLE,新建脚本窗口 2.导入arcpy模块 3.设置工作空间 arcpy.env.workspace "<>" 4.调用ListFeatureClasses()函数,并将返回的值赋值给fcList变量 fcList arcpy.ListFe…...

基于联合概率密度与深度优化的反潜航空深弹命中概率模型研究摘要

前言:项目题材来自数学建模2024年的D题,文章内容为笔者和队友原创,提供一个思路。 摘要 随着现代军事技术的发展,深水炸弹在特定场景下的反潜作战效能日益凸显,如何最大化的发挥深弹威力也成为重要研究课题。本文针对评估深弹投掷落点对命中潜艇概率的影响进行分析,综合利…...

【PyQt】pyqt小案例实现简易文本编辑器

pyqt小案例实现简易文本编辑器 分析 实现了一个简单的文本编辑器&#xff0c;使用PyQt5框架构建。以下是代码的主要功能和特点&#xff1a; 主窗口类 (MyWindow): 继承自 QWidget 类。使用 .ui 文件加载用户界面布局。设置窗口标题、状态栏消息等。创建菜单栏及其子菜单项&…...

二叉树03(数据结构初阶)

文章目录 一&#xff1a;实现链式结构二叉树1.1前中后序遍历1.1.1遍历规则1.1.2代码实现 1.2结点个数以及高度等1.2.1二叉树结点个数1.2.2二叉树叶子结点个数1.2.3二叉树第k层结点个数1.2.4二叉树的深度/高度1.2.5 二叉树查找值为x的结点1.2.6二叉树的销毁 1.3层序遍历1.4判断是…...

ComfyUI工作流 图像反推生成人像手办人像参考(SDXL版)

文章目录 图像反推生成人像手办人像参考SD模型Node节点工作流程效果展示开发与应用图像反推生成人像手办人像参考 本工作流旨在通过利用 Stable Diffusion XL(SDXL)模型和相关辅助节点,实现高效的人像参考生成和手办设计。用户可通过加载定制的模型、LORA 调整和控制节点对…...

【01】共识机制

BTF共识 拜占庭将军问题 拜占庭将军问题是一个共识问题 起源 Leslie Lamport在论文《The Byzantine Generals Problem》提出拜占庭将军问题。 核心描述 军中可能有叛徒&#xff0c;却要保证进攻一致&#xff0c;由此引申到计算领域&#xff0c;发展成了一种容错理论。随着…...

sentinel的限流原理

Sentinel 的限流原理基于 流量统计 和 流量控制策略&#xff0c;通过动态规则对系统资源进行保护。其核心设计包括以下几个关键点&#xff1a; 流量统计模型&#xff1a;滑动时间窗口 Sentinel 使用 滑动时间窗口算法 统计单位时间内的请求量&#xff0c;相比传统的固定时间窗…...

ZOJ 1007 Numerical Summation of a Series

原题目链接 生成该系列值的表格 对于x 的 2001 个值&#xff0c;x 0.000、0.001、0.002、…、2.000。表中的所有条目的绝对误差必须小于 0.5e-12&#xff08;精度为 12 位&#xff09;。此问题基于 Hamming (1962) 的一个问题&#xff0c;当时的大型机按今天的微型计算机标准来…...

『 C 』 `##` 在 C 语言宏定义中的作用解析

文章目录 ## 运算符的基本概念可变参数宏与 ## 的应用可变参数宏简介## 处理可变参数的两种情况可变参数列表为空可变参数列表不为空 示例代码验证 在 C 和 C 编程里&#xff0c;宏定义是个很有用的工具。今天咱们就来聊聊 ## 这个预处理器连接运算符在宏定义中的作用&#xff…...

独立成分分析 (ICA):用于信号分离或降维

人工智能例子汇总&#xff1a;AI常见的算法和例子-CSDN博客 独立成分分析 (Independent Component Analysis, ICA) 是一种用于信号分离和降维的统计方法&#xff0c;常用于盲源分离 (Blind Source Separation, BSS) 问题&#xff0c;例如音频信号分离或脑电信号 (EEG) 处理。…...

为什么会有函数调用参数带标签的写法?Swift函数调用的参数传递需要加前缀是否是冗余?函数调用?函数参数?

为什么会有函数调用参数带标签的写法? ObjC函数参数形式与众不同&#xff0c;实参前会加前缀&#xff0c;尤其参数很多的情况&#xff0c;可读性很强。例如&#xff1a; [person setAge: 29 setSex:1 setClass: 35]; 这种参数前面加前缀描述也被叫标签(Label). 注意&#xff0…...

实际操作 检测缺陷刀片

号he 找到目标图像的缺陷位置&#xff0c;首先思路为对图像进行预处理&#xff0c;灰度-二值化-针对图像进行轮廓分析 //定义结构元素 Mat se getStructuringElement(MORPH_RECT, Size(3, 3), Point(-1, -1)); morphologyEx(thre, tc, MORPH_OPEN, se, Point(-1, -1), 1); …...

使用Pygame制作“青蛙过河”游戏

本篇博客将演示如何使用 Python Pygame 从零开始编写一款 Frogger 风格的小游戏。Frogger 是一款早期街机经典&#xff0c;玩家需要帮助青蛙穿越车水马龙的马路到达对岸。本示例提供了一个精简原型&#xff0c;包含角色移动、汽车生成与移动、碰撞检测、胜利条件等关键点。希望…...

BUU17 [RoarCTF 2019]Easy Calc1

自用 源代码 $(#calc).submit(function(){$.ajax({url:"calc.php?num"encodeURIComponent($("#content").val()),type:GET,success:function(data){$("#result").html(<div class"alert alert-success"><strong>答案:&l…...

堆的实现——对的应用(堆排序)

文章目录 1.堆的实现2.堆的应用--堆排序 大家在学堆的时候&#xff0c;需要有二叉树的基础知识&#xff0c;大家可以看我的二叉树文章&#xff1a;二叉树 1.堆的实现 如果有⼀个关键码的集合 K {k0 , k1 , k2 , …&#xff0c;kn−1 } &#xff0c;把它的所有元素按完全⼆叉树…...

新生讲课——图和并查集

1.图的存储 &#xff08;1&#xff09;.邻接矩阵 邻接矩阵可以借助stl中的vector,我们通过开一个二维矩阵,g[u]中存储的是u可以到达的点,定义如下 const int N 2e5 10; vector<int> g[N] 若是遇到带权图则定义如下 const int N 2e5 10; vector <pair <int ,…...

微信消息自动转发终极指南:5分钟实现跨群智能消息同步

微信消息自动转发终极指南&#xff1a;5分钟实现跨群智能消息同步 【免费下载链接】wechat-forwarding 在微信群之间转发消息 项目地址: https://gitcode.com/gh_mirrors/we/wechat-forwarding 在微信群管理和协作场景中&#xff0c;消息的自动转发与同步是提升效率的关…...

OpenClaw到Hermes一键迁移:自动化配置转移与智能体升级实践

1. 项目概述&#xff1a;从 OpenClaw 到 Hermes 的平滑迁移方案如果你正在运行一个名为 OpenClaw 的智能体项目&#xff0c;并且最近听说了它的“继任者”或一个更强大的替代品 Hermes&#xff0c;那么你很可能正面临一个经典的工程难题&#xff1a;如何将现有的、已经配置好的…...

AI驱动游戏开发:Godogen自动化流水线全解析

1. 项目概述&#xff1a;当AI成为你的游戏开发合伙人 如果你是一名独立游戏开发者&#xff0c;或者对用Godot引擎做点小玩意儿感兴趣&#xff0c;那你肯定体会过那种感觉&#xff1a;一个绝妙的点子在你脑海里盘旋&#xff0c;但一想到要从零开始搭场景、写脚本、画素材&#x…...

渗透PHP伪协议

一、debug调试 1、定义 Debug&#xff0c;又叫断点调试&#xff0c;就是对写好的程序进行逐步运行、分解、调试的过程&#xff0c;通过这个过程&#xff0c;我们可以跟踪程序的详细运行过程&#xff0c; 是程序员的开发神器&#xff0c;也是开发必会的一个重要技能。 2、意义…...

深度解析VMDE:Windows系统虚拟机检测的终极武器

深度解析VMDE&#xff1a;Windows系统虚拟机检测的终极武器 【免费下载链接】VMDE Source from VMDE paper, adapted to 2015 项目地址: https://gitcode.com/gh_mirrors/vm/VMDE 在网络安全研究的世界里&#xff0c;有一个永恒的问题困扰着分析师们&#xff1a;"我…...

从灰度图到粉彩叙事,全程可复现:5个精准Prompt模板+3类LUT预设,零基础速产美术馆级Pastel印相

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;从灰度图到粉彩叙事&#xff1a;Pastel印相的美学本质与技术边界 Pastel印相并非简单的色彩叠加&#xff0c;而是一种基于人眼感知非线性响应与胶片化学特性的数字模拟范式。其核心在于将灰度图像的亮度…...

为什么你的学术论文格式转换总是失败?docx2tex 3步解决方案

为什么你的学术论文格式转换总是失败&#xff1f;docx2tex 3步解决方案 【免费下载链接】docx2tex Converts Microsoft Word docx to LaTeX 项目地址: https://gitcode.com/gh_mirrors/do/docx2tex 还在为Word到LaTeX的格式转换头痛吗&#xff1f;每次提交学术论文、技术…...

从零构建Telegram天气机器人:Python异步编程与API集成实战

1. 项目概述&#xff1a;一个能聊天的天气机器人 如果你用过Telegram&#xff0c;大概率会见过或者用过一些机器人。它们能帮你查新闻、翻译、管理任务&#xff0c;甚至陪你聊天。今天要聊的这个项目&#xff0c; imkarimkarim/Telegram-Weather-Bot &#xff0c;就是一个典型…...

2026论文降AI实战SOP:保留排版格式,8款工具与结构级优化指南

内容ai率检测数值太高&#xff0c;不得不熬夜改了一遍又一遍&#xff0c;润色到想吐&#xff0c;结果检测报告上数字还是不尽人意&#xff0c;截止日期越逼越近&#xff0c;真的是没办法了。 我花了整整三天&#xff0c;把2026全网热门的几十款降AI工具通通测了个遍&#xff0…...

工程师幽默:从EE Times标题竞赛看技术文化表达与沟通艺术

1. 从“Wizard of Woz”看工程师文化的幽默表达看到“Wizard of Woz”这个标题&#xff0c;很多老电子工程师或硅谷历史爱好者大概会心一笑。这显然是在玩一个经典的双关梗——“Wizard of Oz”&#xff08;绿野仙踪&#xff09;和“Woz”&#xff08;史蒂夫沃兹尼亚克&#xf…...