1052.Linked List Sorting
来源:互联网 发布:gpa算法 编辑:程序博客网 时间:2024/05/07 13:36
【题意】
给出内存中一些节点的地址和内容,返回对关键字排序的链表的地址、内容及下一个内存地址
【思路】
用一个map存储节点地址和内容的关系,然后从起始地址起遍历一遍链表节点,并将这些节点存入一个vector,最后对vector按关键字排序、输出即可
【注意点】
1. 内存中可能会有多余的节点信息,所以需要遍历链表,只将属于链表的节点加入vector;
2. 起始地址也可能为NULL(-1),需要特殊处理
#include <iostream>#include <vector>#include <algorithm>#include <cstdio>#include <map>using namespace std;typedef struct{int addr;int key;int nextAddr;}node;bool cmp(node n1, node n2){return n1.key<n2.key;}int main(int argc, char const *argv[]){int n,head;map<int,pair<int,int>> mm;vector<node> validList;cin >> n >> head;if(head==-1){cout << "0 -1";system("pause");return 0;}for(int i=0; i<n; i++){int addr[2],key;cin >> addr[0] >> key >> addr[1];mm[addr[0]] = pair<int,int>(key,addr[1]);}int index = head;while(index!=-1){node tmp;tmp.addr = index;tmp.key = mm[index].first;tmp.nextAddr = mm[index].second;validList.push_back(tmp);index = mm[index].second;}sort(validList.begin(),validList.end(),cmp);printf("%d %05d\n", validList.size(), validList[0].addr);for(int i=0; i<validList.size(); i++){printf("%05d %d ", validList[i].addr, validList[i].key);if(i==validList.size()-1){printf("-1\n");}else{printf("%05d\n", validList[i+1].addr);}}system("pause");return 0;}
0 0
- 1052. Linked List Sorting
- 1052. Linked List Sorting
- 1052. Linked List Sorting
- 1052.Linked List Sorting
- 1052. Linked List Sorting
- 1052. Linked List Sorting
- 1052. Linked List Sorting
- 1052. Linked List Sorting
- 1052. Linked List Sorting
- 1052. Linked List Sorting (25)
- 1052. Linked List Sorting (25)
- 1052. Linked List Sorting (25)
- 1052. Linked List Sorting (25)
- PAT 1052. Linked List Sorting
- 1052. Linked List Sorting (25)
- 1052. Linked List Sorting (25)
- 1052. Linked List Sorting (25)
- 1052. Linked List Sorting (25)
- 【数据结构与算法】汉诺塔算法——java递归实现
- 文件的打开模式和文件对象方法
- 1051.Pop Sequence
- MySQL时间格式转换函数date_format()用法详解
- could not initialize proxy - no Session
- 1052.Linked List Sorting
- Android—同一个ListView的不同背景项
- 1053.Path of Equal Weight
- 常用函数
- poj1986
- androidPN java.lang.NoClassDefFoundError: org.androidpn.client.解决方法
- jsonConfig使用
- 【C++ Primer】【学习笔记】【第八章】标准IO库之:文件的输入和输出
- 随时随地和个性化——移动互联网