给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转。例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为 3→2→1→6→5→4;如果 K 为 4,则输出应该为 4→3→2→1→5→6,即最后不到 K 个元素不反转。

输入格式:

每个输入包含 1 个测试用例。每个测试用例第 1 行给出第 1 个结点的地址、结点总个数正整数 N (≤)、以及正整数 K (≤),即要求反转的子链结点的个数。结点的地址是 5 位非负整数,NULL 地址用 − 表示。

接下来有 N 行,每行格式为:

Address Data Next

其中 Address 是结点地址,Data 是该结点保存的整数数据,Next 是下一结点的地址。

输出格式:

对每个测试用例,顺序输出反转后的链表,其上每个结点占一行,格式与输入相同。

输入样例:

00100 6 4
00000 4 99999
00100 1 12309
68237 6 -1
33218 3 00000
99999 5 68237
12309 2 33218

输出样例:

00000 4 33218
33218 3 12309
12309 2 00100
00100 1 99999
99999 5 68237
68237 6 -1
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn = 100100;
struct Node{int address,data,next;int order;
}node[maxn];bool cmp(Node a,Node b){if(a.order == -1 || b.order == -1){return a.order > b.order;}else return a.order < b.order;
}int main(){for(int i = 0; i < maxn; i++) node[i].order = -1;int n,k,begin,address;scanf("%d%d%d",&begin,&n,&k);for(int i = 0; i < n; i++){scanf("%d",&address);scanf("%d%d",&node[address].data,&node[address].next);node[address].address = address;}int p = begin,count = 0;while(p != -1){node[p].order = count++;p = node[p].next;}sort(node,node+maxn,cmp);n = count;for(int i = 0; i < n/k; i++){for(int j = (i+1)*k - 1; j > i*k; j--){printf("%05d %d %05d\n",node[j].address,node[j].data,node[j-1].address);}printf("%05d %d ",node[i*k].address,node[i*k].data);if(i < n/k - 1) printf("%05d\n",node[(i+2)*k-1].address);else{if(n%k == 0) printf("-1");else{printf("%05d\n",node[(i+1)*k].address);for(int i = n/k*k; i < n; i++){printf("%05d %d ",node[i].address,node[i].data);if(i < n - 1) printf("%05d\n",node[i+1].address);else printf("-1");}}}}return 0;
}

转载于:https://www.cnblogs.com/wanghao-boke/p/10222760.html

1025 反转链表 (25 分相关推荐

  1. PAT乙级1025反转链表 25(分)

    1025 反转链表 (25 分) 给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转.例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为3→2→1→6→5→ ...

  2. PAT | 1025 反转链表 (25分)【超时问题 + 柳神代码】

    1025 反转链表 (25分) 给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转.例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为 3→2→1→6→5→ ...

  3. 1025 反转链表 (25 分)

    1025 反转链表 (25 分) 给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转.例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为 3→2→1→6→5 ...

  4. c语言最大字符1025,1025 反转链表 (25 分)C语言

    题目描述 给定一个常数K以及一个单链表L,请编写程序将L中每K个结点反转.例如:给定L为1→2→3→4→5→6,K为3,则输出应该为 3→2→1→6→5→4:如果K为4,则输出应该为4→3→2→1→5 ...

  5. 【PAT (Basic Level) 】1025 反转链表 (25 分)

    给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转.例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为 3→2→1→6→5→4:如果 K 为 4,则输出应该 ...

  6. 1025 反转链表 (25 分)(c语言)

    给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转.例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为 3→2→1→6→5→4:如果 K 为 4,则输出应该 ...

  7. 1025 反转链表 (25分)(最详细最简便)(套路模板)

    立志用更少的代码做更高效的表达 给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转.例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为 3→2→1→6→5→ ...

  8. 1025 反转链表 (25分)

    输入样例: 00100 6 4 00000 4 99999 00100 1 12309 68237 6 -1 33218 3 00000 99999 5 68237 12309 2 33218 输出样 ...

  9. PAT乙级|C语言|1025 反转链表 (25分)

    题目 给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转.例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为 3→2→1→6→5→4:如果 K 为 4,则输 ...

  10. 【PAT乙级】1025 反转链表 (25 分)

    题目地址 最后一个测试点:不是所有的点都是合法的,有的结点地址是负数. #include<cstdio> #include<iostream> #include<map& ...

最新文章

  1. 在线作图|如何绘制一个好看的堆叠柱状图
  2. PreparedStatement和CallableStatement都可以调用存储过程
  3. c语言 字符串 if,C语言用if(strstr(s1,s2))判断字符串是否存在子字符串,无论有没有都会进入到if里是怎么回事?...
  4. Session 的钝化与活化
  5. 面向对象写选项卡、拖拽
  6. ubuntu 14.04 LTS(64bit) Anaconda2 + Theano(1.0.2) + Keras安装
  7. X大佬:建议被降级降薪员工主动辞职,网友炸了
  8. 有人问我:Linux下命令行里 password:的时候 用键盘密码打不了
  9. userService 用户 会员 系统设计 v2 q224 .doc
  10. tomcat 7服务器跨域问题解决
  11. gensler逻辑学导论_学逻辑学,哪本书入门合适?
  12. 项目管理表格模板/实用表格-需求
  13. 给txt格式的文档增加目录
  14. 漫谈运维:半神半仙亦民工
  15. 桃词典 Peach Dictionary 简易英语词典app开发 安卓软件开发 Part 7
  16. 2018年互联网技术岗(数据分析)暑期实习面试经验
  17. docker白话版(一)简介+使用命令
  18. 《C语言入门指南》合集版,学习c语言有这一篇就够了?
  19. Android QQ空间(Apad)项目总结(三)---应用UI框架的搭建!!!
  20. 基于AIE的贵阳市两湖一库水体区域识别

热门文章

  1. nginx资源定向 css js路径问题
  2. 对多个WCF服务进行统一的连接测试
  3. 初来乍到!各位博客朋友多多支持!
  4. 公众平台模板消息所在行业_第三方工具微信公众号模板消息群发如何操作?
  5. opencv 多线程加速_线程池给你写好了,想加速拿来用就行哈
  6. java 切面 不执行,解决springboot的aop切面不起作用问题(失效的排查)
  7. dart服务器开发性能,DartVM服务器开发(第四天)--代码优化
  8. 西瓜创客python编程进阶收费_西瓜创客和编程猫有什么不同?哪个更值得报名?...
  9. CUDA: OpenCV requires enabled ‘cudev‘ module from ‘opencv_contrib
  10. python列表总结