当前位置: 首页 > news >正文

PAT 1052 Linked List Sorting

在这里插入图片描述
在这里插入图片描述
这一题的意思是让给出的链表按照每个节点的值的大小排序,按照升序排,
很容易想到直接用sort依据值进行排序即可。但要注意的是给出的节点,可能不都是在一个链表上的,有可能有孤立的节点,因此我们应该先对链表进行从头到尾的遍历一遍,找到在链表上有多少个节点。

#include <iostream>
#include <limits.h>
#include <cstring>
#include <queue>
#include <unordered_map>
#include <algorithm>
#include <cmath>
#include <vector>
#include <map>
using namespace std;
int N;
int startaddress;
int endaddress;
struct node
{int address;int key;int next;
}linklist[100005];
bool cmp(node a,node b)
{if(a.key<b.key){return true;}else{return false;}
}
int main()
{//ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);cin>>N>>startaddress;for(int i=0;i<N;i++){int address;int key;int next;cin>>address>>key>>next;linklist[address].address=address;linklist[address].key=key;linklist[address].next=next;	}vector<node> ans;while(startaddress!=-1){//startaddress=linklist[startaddress].next;ans.push_back(linklist[startaddress]);startaddress=linklist[startaddress].next;}int cnt=ans.size();if(cnt==0){printf("0 -1\n");return 0;} sort(ans.begin(),ans.end(),cmp);for(int i=0;i<cnt;i++){if(i==0){startaddress=ans[i].address;}if(i==cnt-1){ans[i].next=-1;}elseans[i].next=ans[i+1].address;	}printf("%d %05d\n",cnt,startaddress);for(int i=0;i<cnt;i++){if(i==cnt-1){printf("%05d %d %d\n",ans[i].address,ans[i].key,ans[i].next);	}else{printf("%05d %d %05d\n",ans[i].address,ans[i].key,ans[i].next);}//printf("%05d %d %05d\n",ans[i].address,ans[i].key,ans[i].next);}return 0;} 
http://www.dtcms.com/a/322860.html

相关文章:

  • 第16届蓝桥杯Scratch选拔赛初级及中级(STEMA)2024年10月20日真题
  • 求和算法的向后稳定性 backward stable
  • 【Python 高频 API 速学 ③】
  • 优化器:SGD、Adam、RMSprop等优化算法对比与机器翻译应用
  • 99-基于Python的京东手机数据分析及预测系统
  • I2CHAL库接口
  • c++ opencv调用yolo onnx文件
  • 用天气预测理解分类算法-从出门看天气到逻辑回归
  • SymPy 表达式的变量获取:深入理解与正确实践
  • 对数运算法则(rule of logarithmic operations)和对应导数关系
  • 带冷端补偿的热电偶采集方案MAX31855
  • Python(6) -- 数据容器
  • 《原型链的柔性骨架:JavaScript面向对象架 构的动态设计与演化逻辑》
  • 【线性代数】线性方程组与矩阵——(1)线性方程组与矩阵初步
  • Python中的Lambda函数详解
  • 北京JAVA基础面试30天打卡05
  • PowerShell 实战:第 6 章动手实验全攻略(含命令详解与示例)
  • Ubuntu和Windows系统Kafka配置方法
  • 模式组合应用-适配器模式
  • 光伏面板损伤检出率↑91%!陌讯多模态识别算法在无人机巡检的落地实践
  • 基于clodop和Chrome原生打印的标签实现方法与性能对比
  • 深入理解Maven BOM
  • 基于MATLAB的Halo轨道设计与可视化实现
  • [SC]SystemC 常见的编译/语法错误与解法(三)
  • PDF 转 HTML API 数据接口
  • 在Spring Boot项目中如何动态切换数据源、数据库?
  • Redis分布式锁详解:原理、实现与实战案例
  • 【C++11新特性】智能指针,右值引用,移动语义与完美转发,函数对象...
  • Linux运维新手的修炼手扎之第27天
  • pyqt5 ECU编辑demo