传送门: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静态链表+链表排序相关推荐

  1. PAT甲级1028 List Sorting:[C++题解]排序,cin和cout会超时

    文章目录 题目分析 题目链接 题目分析 用结构体来存,写三个排序函数. 本题需要注意的点是: 用cin来读会超时,所以用C语言的scanf来读.这样的话,就不能使用string,而是使用char数组. ...

  2. PAT 1052. Linked List Sorting

    这场考试当年还参加了,当时直接用内置的排序了,否则自己写归并排序浪费时间啊,现在来练习一发.估计又有些节点没在链表里面,当时没考虑这个情况,所以一直有些case没过 #include <iost ...

  3. PAT甲级1052 Linked List Sorting:[C++题解]链表排序

    文章目录 题目分析 题目链接 题目分析 题意:给定数据(里面有不构成链表的数据,若是,则跳过),是链表的构成链表.然后根据数值大小重新排序,构成新的链表. 分析:用数组模拟链表,先建立链表.遍历链表, ...

  4. Linked List Sorting (链表)

    Linked List Sorting (链表)   A linked list consists of a series of structures, which are not necessari ...

  5. PAT甲级题目翻译+答案 AcWing(链表)

    1032 Sharing (25 分) 题意 : suffix后缀:prefix前缀 每个结点存一个字母,一共存两个单词 分别给两个单词的第一个字母的地址以及总共的结点数 给出所有结点的地址数值和下一 ...

  6. 数据结构 - 静态单链表的实行(C语言)

    静态单链表的实现 1 静态链表定义 静态链表存储结构的定义如下: /* 线性表的静态链表存储结构 */ #define MAXSIZE 1000 /* 假设链表的最大长度是1000 */ typede ...

  7. 数据结构开发(6):静态单链表的实现

    0.目录 1.单链表的遍历与优化 2.静态单链表的实现 3.小结 1.单链表的遍历与优化 问题: 如何遍历单链表中的每一个数据元素? 当前单链表的遍历方法: 遗憾的事实: 不能以线性的时间复杂度完成单 ...

  8. 1052 Linked List Sorting (25 分)

    Sample Input: 5 00001 11111 100 -1 00001 0 22222 33333 100000 11111 12345 -1 33333 22222 1000 12345 ...

  9. 1052. Linked List Sorting

    没仔细审题,走了很多弯路.题目要求:内存中有很多散列的节点,可能构成不止一个链表.其次要注意空链表的情况. // 1052. Linked List Sorting.cpp: 主项目文件.#inclu ...

  10. 1052 Linked List Sorting(排序)

    1052 Linked List Sorting(排序) 思路: s t r u c t + struct+ struct+排序. 坑点: 1.答案只包含从原链表中头结点开始的结点,有点结点不在原链表 ...

最新文章

  1. 十个 Linux 新手管理员易犯错误
  2. 《柳叶刀》:群体免疫不靠谱!欧洲迄今最大新冠血清学调查显示,西班牙抗体阳性率仅5%...
  3. mvc和php的关系,php - 什么是HMVC模式?
  4. 搭建scala 开发spark程序环境及实例演示
  5. 数据挖掘之关联分析三(规则的产生)
  6. Sencha ID的注册
  7. 无法访问你试图使用的功能所在的网络位置_[steam实用工具]解决无法访问商店/社区/好友列表的问题...
  8. altas(ajax)控件(二):悬浮面板控件AlwaysVisibleControl
  9. 淘宝TFS文件系统配置
  10. flask html 得到文本框 input的内容_Python的Web框架Flask + Vue 生成漂亮的词云
  11. 全国计算机二级java刷题软件_你知道的计算机二级刷题软件
  12. java简历项目经验范文
  13. 2019通信工程师最新的职业发展方向
  14. Unity获取本机IP地址
  15. C++不规则窗体编程跳棋游戏实例!
  16. 腾讯云游戏数据库 TcaplusDB 的一些常见问题的解答
  17. 预处理工艺采用水处理过滤器的作用说明
  18. ATTck 命令执行 —— 远程动态数据交换
  19. c语言 __at定位编译报错,盈球新版 -官网
  20. 京剧《断密涧》中李密和王伯当的唱段

热门文章

  1. 【Docker】 命令速查
  2. u3d目标与摄像机之间的遮挡物变为透明
  3. 逻辑代数01律的理解_第十课:四个基本子空间——MIT线性代数课程学习笔记
  4. Keil5安装NXP核心LPX2000系列 出现err:Cannot read project file异常,err :出现闪退异常
  5. python热成像_matplotlib实现热成像图colorbar和极坐标图的方法
  6. vbyone接口引脚定义_USB3.1 Type-C 高速接口设计指南
  7. java 截取掉数字前面的0_java 保留字符串数字的位数,不够前面补0
  8. linux查看行数命令 set,Linux显示文件行数之nl命令详解
  9. fluentmigrator连接mysql_如何利用FluentMigrator实现数据库迁移
  10. 疯狂的图形(利用C# + GDI plus模拟杂乱无章的现实场景)