当前位置: 首页 > 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.lryc.cn/news/615372.html

相关文章:

  • java之父-新特性
  • React中实现完整的登录鉴权与权限控制系统
  • 算法题(183):质量检测
  • 【递归、搜索和回溯】FloodFill 算法介绍及相关例题
  • 比亚迪第五代DM技术:AI能耗管理的深度解析与实测验证
  • ToB大型软件可靠性测试方案
  • Dell PowerEdge: Servers by generation (按代系划分的服务器)
  • imx6ull-驱动开发篇15——linux自旋锁
  • Orange的运维学习日记--36.NFS详解与服务部署
  • 回答“http协议 ,js组件化,工程化, seo优化策略 ,针对不同平台终端适配 web标注和兼容性”
  • Vue3的简单学习
  • Vuex 数据共享
  • JVM常用参数有哪些?
  • 06.【数据结构-C语言】队列(先进先出,队列实现:入队列、出队列、获取队头or队尾元素,队列实现代码,队列相关题目)
  • idea设置注释--带日期和作者和描述
  • 排序概念以及插入排序
  • Oracle字段操作
  • (nice!!!)(LeetCode 面试经典 150 题) 146. LRU 缓存 (哈希表+双向链表)
  • 在 Vue 中动态引入SVG图标的实现方案
  • STM32 外设驱动模块四:光敏电阻(LDR) 模块
  • 後端開發技術教學(四) 數據交互延伸
  • 2025年渗透测试面试题总结-09(题目+回答)
  • 力扣(轮转数组)
  • 欧拉公式的意义
  • gpt-oss 全量技术解读
  • AI鉴伪技术:守护数字时代的真实性防线
  • 数学学习 | 高数、线代、概率论及数理统计荐书
  • 【C++】set
  • AI热点周报(8.3~8.9):OpenAI重返开源,Anthropic放大招,Claude4.1、GPT5相继发布
  • 第二十八天(cookiesessiontokeny验证)