pat A1052:Linked List Sorting静态链表+链表排序
传送门:https://pintia.cn/problem-sets/994805342720868352/problems/994805425780670464
题目大意:
给出一个链表,将链表排序,然后把链表上的结点按照data值的从小到大顺序输出
解题思路:
建立结构体数组,按照从首地址开始的顺序(直到-1)遍历一遍整个链表,将在链表中的结点的flag标记为true,并且统计coun t(有效结点的个数)。(因为有的结点根本不在链表中)
然后将链表进行排序,如果flag == false就把他们移动到后面(即:reuturn a.flag > b.flag),最后只输出前count个链表的信息
注意:
最后地址-1的输出要特别处理;
题目可能有无效结点,即不在题目所给出的首地址开始的链表上;
数据还要均为无限结点的情况,需要特判
ac代码:
#include <iostream>
#include <algorithm>
#define maxn 100000
using namespace std;
struct Node{int address,data,next;bool flag;
}node[maxn];
bool cmp(Node a,Node b)
{if(a.flag==false ||b.flag==false )return a.flag>b.flag;else return a.data<b.data;
}
int main()
{for(int i=0;i<maxn;i++)node[i].flag=false;int n,begin,address;scanf("%d%d",&n,&begin);for(int i=0;i<n;i++){scanf("%d",&address);scanf("%d%d",&node[address].data,&node[address].next);node[address].address=address;}int count=0,p=begin;while(p!=-1){node[p].flag=true;count++;p=node[p].next;}if(count==0)printf("0 -1");else{sort(node,node+maxn,cmp);printf("%d %05d\n",count,node[0].address);for(int i=0;i<count;i++){if(i!=count-1)printf("%05d %d %05d\n",node[i].address,node[i].data,node[i+1].address);elseprintf("%05d %d -1\n",node[i].address,node[i].data);}}return 0;
}
pat A1052:Linked List Sorting静态链表+链表排序相关推荐
- PAT甲级1028 List Sorting:[C++题解]排序,cin和cout会超时
文章目录 题目分析 题目链接 题目分析 用结构体来存,写三个排序函数. 本题需要注意的点是: 用cin来读会超时,所以用C语言的scanf来读.这样的话,就不能使用string,而是使用char数组. ...
- PAT 1052. Linked List Sorting
这场考试当年还参加了,当时直接用内置的排序了,否则自己写归并排序浪费时间啊,现在来练习一发.估计又有些节点没在链表里面,当时没考虑这个情况,所以一直有些case没过 #include <iost ...
- PAT甲级1052 Linked List Sorting:[C++题解]链表排序
文章目录 题目分析 题目链接 题目分析 题意:给定数据(里面有不构成链表的数据,若是,则跳过),是链表的构成链表.然后根据数值大小重新排序,构成新的链表. 分析:用数组模拟链表,先建立链表.遍历链表, ...
- Linked List Sorting (链表)
Linked List Sorting (链表) A linked list consists of a series of structures, which are not necessari ...
- PAT甲级题目翻译+答案 AcWing(链表)
1032 Sharing (25 分) 题意 : suffix后缀:prefix前缀 每个结点存一个字母,一共存两个单词 分别给两个单词的第一个字母的地址以及总共的结点数 给出所有结点的地址数值和下一 ...
- 数据结构 - 静态单链表的实行(C语言)
静态单链表的实现 1 静态链表定义 静态链表存储结构的定义如下: /* 线性表的静态链表存储结构 */ #define MAXSIZE 1000 /* 假设链表的最大长度是1000 */ typede ...
- 数据结构开发(6):静态单链表的实现
0.目录 1.单链表的遍历与优化 2.静态单链表的实现 3.小结 1.单链表的遍历与优化 问题: 如何遍历单链表中的每一个数据元素? 当前单链表的遍历方法: 遗憾的事实: 不能以线性的时间复杂度完成单 ...
- 1052 Linked List Sorting (25 分)
Sample Input: 5 00001 11111 100 -1 00001 0 22222 33333 100000 11111 12345 -1 33333 22222 1000 12345 ...
- 1052. Linked List Sorting
没仔细审题,走了很多弯路.题目要求:内存中有很多散列的节点,可能构成不止一个链表.其次要注意空链表的情况. // 1052. Linked List Sorting.cpp: 主项目文件.#inclu ...
- 1052 Linked List Sorting(排序)
1052 Linked List Sorting(排序) 思路: s t r u c t + struct+ struct+排序. 坑点: 1.答案只包含从原链表中头结点开始的结点,有点结点不在原链表 ...
最新文章
- 十个 Linux 新手管理员易犯错误
- 《柳叶刀》:群体免疫不靠谱!欧洲迄今最大新冠血清学调查显示,西班牙抗体阳性率仅5%...
- mvc和php的关系,php - 什么是HMVC模式?
- 搭建scala 开发spark程序环境及实例演示
- 数据挖掘之关联分析三(规则的产生)
- Sencha ID的注册
- 无法访问你试图使用的功能所在的网络位置_[steam实用工具]解决无法访问商店/社区/好友列表的问题...
- altas(ajax)控件(二):悬浮面板控件AlwaysVisibleControl
- 淘宝TFS文件系统配置
- flask html 得到文本框 input的内容_Python的Web框架Flask + Vue 生成漂亮的词云
- 全国计算机二级java刷题软件_你知道的计算机二级刷题软件
- java简历项目经验范文
- 2019通信工程师最新的职业发展方向
- Unity获取本机IP地址
- C++不规则窗体编程跳棋游戏实例!
- 腾讯云游戏数据库 TcaplusDB 的一些常见问题的解答
- 预处理工艺采用水处理过滤器的作用说明
- ATTck 命令执行 —— 远程动态数据交换
- c语言 __at定位编译报错,盈球新版 -官网
- 京剧《断密涧》中李密和王伯当的唱段
热门文章
- 【Docker】 命令速查
- u3d目标与摄像机之间的遮挡物变为透明
- 逻辑代数01律的理解_第十课:四个基本子空间——MIT线性代数课程学习笔记
- Keil5安装NXP核心LPX2000系列 出现err:Cannot read project file异常,err :出现闪退异常
- python热成像_matplotlib实现热成像图colorbar和极坐标图的方法
- vbyone接口引脚定义_USB3.1 Type-C 高速接口设计指南
- java 截取掉数字前面的0_java 保留字符串数字的位数,不够前面补0
- linux查看行数命令 set,Linux显示文件行数之nl命令详解
- fluentmigrator连接mysql_如何利用FluentMigrator实现数据库迁移
- 疯狂的图形(利用C# + GDI plus模拟杂乱无章的现实场景)