02-线性结构3 Reversing Linked List (25分)
来源:互联网 发布:超星网络课程登录入口 编辑:程序博客网 时间:2024/06/08 16:02
#include <iostream>#include <string>#include <unordered_map>#include <vector>#include <algorithm>using namespace std;struct Node{ char addr[6]; int data; char next[6];};int main(void) { string firstAddr; int n, k; cin >> firstAddr >> n >> k; //将所有节点保存 unordered_map<string, Node> nodeMap; nodeMap.reserve(n); Node node; for (int i(0); i < n; ++i) { scanf("%s%d%s", node.addr, &node.data, node.next); nodeMap.insert(pair<string, Node>(node.addr, node)); } //选出所有在链表上的节点,依次一个一个串起来。 vector<Node> vec; vec.reserve(n); while (firstAddr != "-1") { vec.push_back(nodeMap[firstAddr]); firstAddr = nodeMap[firstAddr].next; } //每k个逆转 if (k > 1) { auto iter(vec.begin()), end(vec.end() - k); for (; iter <= end; iter += k) reverse(iter, iter + k); } auto last(vec.size() - 1); for (unsigned i(0); i < last; ++i) printf("%s %d %s\n", vec[i].addr, vec[i].data, vec[i + 1].addr); printf("%s %d %s\n", vec[last].addr, vec[last].data, "-1"); return 0;}
0 0
- 02-线性结构3 Reversing Linked List (25分)
- 02-线性结构3 Reversing Linked List (25分)
- 02-线性结构3 Reversing Linked List (25分)
- 02-线性结构3 Reversing Linked List (25分)
- 02-线性结构3 Reversing Linked List (25分)
- 02-线性结构3 Reversing Linked List (25分)
- [pta]02-线性结构3 Reversing Linked List (25分)
- 02-线性结构3 Reversing Linked List (25分)
- 02-线性结构3 Reversing Linked List (25分)
- 02-线性结构3 Reversing Linked List (25分)
- 02-线性结构3 Reversing Linked List(25 分)
- 02-线性结构2 Reversing Linked List (25分)
- 02-线性结构3 Reversing Linked List
- 02-线性结构3 Reversing Linked List
- 02-线性结构3 Reversing Linked List
- 02-线性结构3 Reversing Linked List (25分)
- PAT数据结构_02-线性结构3 Reversing Linked List (25分)
- 02-线性结构2 Reversing Linked List
- Python Web开发用到的知识
- 包含对象为Integer的List列表转为Integer数组并排序的简单方法
- 使用python对中文文档进行词频统计
- 做自动化测试的时候如何应对验证码问题
- req.body is undefined
- 02-线性结构3 Reversing Linked List (25分)
- 关于推送的那些事
- 2016年10月问题记录与总结
- swift3 闭包
- VS2008编译boost库
- 看一下自己的技术方向和发展路线吧---转载几张图
- 分布式事务
- 浏览器并行下载资源个数
- SWFUpload logoFlash上传组件 SWFUpload