02-线性结构1. Reversing Linked List (25)

时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue

Given a constant K and a singly linked list L, you are supposed to reverse the links of every K elements on L. For example, given L being 1→2→3→4→5→6, if K = 3, then you must output 3→2→1→6→5→4; if K = 4, you must output 4→3→2→1→5→6.

Input Specification:

Each input file contains one test case. For each case, the first line contains the address of the first node, a positive N (<= 105) which is the total number of nodes, and a positive K (<=N) which is the length of the sublist to be reversed. The address of a node is a 5-digit nonnegative integer, and NULL is represented by -1.

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

Address Data Next

where Address is the position of the node, Data is an integer, and Next is the position of the next node.

Output Specification:

For each case, output the resulting ordered linked list. Each node occupies a line, and is printed in the same format as in the input.

Sample Input:

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

Sample Output:

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

提交代码

 #include <cstdio>
#include <cstring>
#include <string>
#include <queue>
#include <stack>
#include <cmath>
#include <iostream>
#include <algorithm>
using namespace std;
struct node{
int now,next,data;
};
node mem[];
vector<node> v;
int main(){
//freopen("D:\\INPUT.txt","r",stdin);
int h,now,data,next,num,k,temp;
scanf("%d %d %d",&h,&num,&k);
int i;
for(i=;i<num;i++){
scanf("%d %d %d",&now,&data,&next);
mem[now].now=now;
mem[now].data=data;
mem[now].next=next;
}
now=h;
while(now!=-){
v.push_back(mem[now]);
now=mem[now].next;
}
int length=v.size();
int round=length/k;
for(i=;i<round;i++){
reverse(v.begin()+i*k,v.begin()+i*k+k);
}
for(i=;i<length-;i++){
printf("%05d %d %05d\n",v[i].now,v[i].data,v[i+].now);
}
printf("%05d %d %d\n",v[i].now,v[i].data,-);//注意全反的情况
return ;
}

最新文章

  1. 新手,Visual Studio 2015 配置Boost库,如何编译和选择,遇到无法打开文件“libboost_thread-vc140-mt-gd-1_63.lib“的解决办法
  2. Quick Cocos 旋转子弹的实现中我学到的
  3. 关于CAShapeLayer的一些实用案例和技巧【转】
  4. Chrome书签被篡改之后的恢复
  5. ECSHOP始终显示全部分类方法
  6. 【Win10】单元测试中捕获异步方法的指定异常
  7. [BZOJ2820]YY的GCD
  8. Elevator 分类: HDU 2015-06-19 21:52 13人阅读 评论(0) 收藏
  9. sql数据库带补全终端命令
  10. div+css(ul li)实现图片上文字下列表布局
  11. 关于echarts的使用----模块化单文件引入(推荐) 与标签式单文件引入
  12. 反思java web的发展
  13. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(9)-TT模板的学习
  14. NoSQL数据库种类
  15. Android 设计模式实战之关于封装计费代码库的策略模式详谈
  16. Spring Security基于Java配置
  17. 【学习笔记】node.js重构路由功能
  18. 洛谷 P1706 全排列问题
  19. Centos 7 关闭selinux and firewall
  20. 学习笔记2—MATLAB的copyfile技巧

热门文章

  1. 阿里 vs. 腾讯,谁的收购更有眼光?
  2. ecliplse导入tomcat
  3. windows如何通过端口查看对应程序
  4. python 时间相关函数
  5. 【SSO单点系列】(4):CAS4.0 SERVER登录后用户信息的返回
  6. Selenium3+python异常后截图(screenshot)
  7. P3705 [SDOI2017]新生舞会 01分数规划+费用流
  8. bit、Byte、bps、Bps、pps、Gbps的单位的说明及换算
  9. php代码书写习惯优化小结
  10. poll?transport=longpoll&amp;connection...烦人的请求