1025 反转链表 (25 分)
给定一个常数 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 (≤10
​5
​​ )、以及正整数 K (≤N),即要求反转的子链结点的个数。结点的地址是 5 位非负整数,NULL 地址用 −1 表示。
接下来有 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<iostream>
#include<vector>
#include<algorithm>
using namespace std;
struct node {int data;int next;
}list[100000];
vector<int>v;
int main()
{int start, n, k,x;cin >> start >> n >> k;for (int i = 0; i < n; i++){cin >> x;cin >> list[x].data >> list[x].next;}while (start != -1){v.push_back(start);start = list[start].next;}for (int i = 0; i < v.size()-v.size()%k; i += k){reverse(v.begin() + i, v.begin() + i + k);}int flag = 0;int i;for (i = 0; i < v.size(); i++){if (flag == 0){printf("%05d %d ", v[i], list[v[i]].data);flag = 1;}else{printf("%05d\n%05d %d ", v[i], v[i], list[v[i]].data);}}printf("-1");
}

C++学习之路 | PTA乙级—— 1025 反转链表 (20分)(精简)相关推荐

  1. C++学习之路 | PTA乙级—— 1084 外观数列 (20 分)(精简)

    1084 外观数列 (20 分) 外观数列是指具有以下特点的整数序列: d, d1, d111, d113, d11231, d112213111, - 它从不等于 1 的数字 d 开始,序列的第 n ...

  2. C++学习之路 | PTA乙级—— 1082 射击比赛 (20 分)(精简)

    1082 射击比赛 (20 分) 本题目给出的射击比赛的规则非常简单,谁打的弹洞距离靶心最近,谁就是冠军:谁差得最远,谁就是菜鸟.本题给出一系列弹洞的平面坐标(x,y),请你编写程序找出冠军和菜鸟.我 ...

  3. C++学习之路 | PTA乙级—— 1068 万绿丛中一点红 (20 分)(精简)

    1068 万绿丛中一点红 (20 分) 对于计算机而言,颜色不过是像素点对应的一个 24 位的数值.现给定一幅分辨率为 M×N 的画,要求你找出万绿丛中的一点红,即有独一无二颜色的那个像素点,并且该点 ...

  4. C++学习之路 | PTA乙级—— 1063 计算谱半径 (20 分)(精简)

    1063 计算谱半径 (20 分) 在数学中,矩阵的"谱半径"是指其特征值的模集合的上确界.换言之,对于给定的 n 个复数空间的特征值 { a ​1 ​​ +b ​1 ​​ i,⋯ ...

  5. C++学习之路 | PTA乙级—— 1057 数零壹 (20 分)(精简)

    1057 数零壹 (20 分) 给定一串长度不超过 10 ​5 ​​ 的字符串,本题要求你将其中所有英文字母的序号(字母 a-z 对应序号 1-26,不分大小写)相加,得到整数 N,然后再分析一下 N ...

  6. C++学习之路 | PTA乙级—— 1048 数字加密 (20 分)(精简)

    1048 数字加密 (20 分) 本题要求实现一种数字加密方法.首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 ...

  7. C++学习之路 | PTA乙级—— 1047 编程团体赛 (20 分)(精简)

    1047 编程团体赛 (20 分) 编程团体赛的规则为:每个参赛队由若干队员组成:所有队员独立比赛:参赛队的成绩为所有队员的成绩和:成绩最高的队获胜. 现给定所有队员的比赛成绩,请你编写程序找出冠军队 ...

  8. C++学习之路 | PTA乙级—— 1043 输出PATest (20 分)(精简)

    1043 输出PATest (20 分) 给定一个长度不超过 10 ​4 ​​ 的.仅由英文字母构成的字符串.请将字符重新调整顺序,按 PATestPATest- 这样的顺序输出,并忽略其它字符.当然 ...

  9. C++学习之路 | PTA乙级—— 1042 字符统计 (20 分)(精简)

    1042 字符统计 (20 分) 请编写程序,找出一段给定文字中出现最频繁的那个英文字母. 输入格式: 输入在一行中给出一个长度不超过 1000 的字符串.字符串由 ASCII 码表中任意可见字符及空 ...

最新文章

  1. C++ #if、#elif、#else和#endif指令 的使用
  2. 搞透Kafka的存储架构,看这篇就够了
  3. AngularJS之Service(四)
  4. 神经网络总结(初稿)
  5. idea创建springboot项目出现的问题
  6. java作业 雏田的两个技能 类与对象
  7. iOS设备中的推送(三):页面跳转
  8. 荣耀9X将搭载麒麟810处理器:全球四大7nm芯片之一无法低调
  9. 将jQuery的复选框设置为“已选中”?
  10. wepy集成colorui 样式框架
  11. pytorch中的transforms介绍
  12. 使用Python进行OpenCV颜色检测和过滤
  13. Mac用户学Python-Day1:安装与环境配置
  14. C++ VS项目属性的一些配置项的总结
  15. 程序中图片透明 函数
  16. 写一个求平方根的函数求一个整数的平方根因为函数类型是整形所以平方根的结果是整数,例如5,的平方根是2,而不是2.3...
  17. 58、【backtrader股票策略】两资产的配对交易策略(pairs trading strategy)
  18. Xiaojie雷达之路---雷达原理(二刷)脉冲法测距
  19. 关于android开发中startActivityForResult废弃的替换方法调用
  20. android SDK-25事件分发机制--源码正确解析

热门文章

  1. 论文浅尝 | 基于图卷积网络的跨语言图谱实体对齐
  2. 论文浅尝 | 动态词嵌入
  3. AINLP-Archive:AINLP文章存档计划
  4. Selenium爬虫
  5. 【HTML/CSS】单位小结
  6. day32 并发编程之锁
  7. 转:Some interesting facts about SharePoint 2007 Search
  8. JS高级学习笔记(6)- 事件循环
  9. ASP.NET Core Web API 索引 (更新Identity Server 4 视频教程)
  10. Jmeter生成html格式测试报告