1052 Linked List Sorting
题意:链表排序
思路:题目本身并不难,但是这题仔细读题很重要。原题中有一句话,"For each case, the first line contains a positive N and an address of the head node, where N is the total number of nodes in memory",它没有明确表示这个N就是链表的结点个数,而是内存中含有的结点个数(大家可以相比较另外几道链表的题目,看看题目描述的细微差别)。因此,在读入数据后,要从头结点开始遍历一遍链表,把链表上的结点提取出来,因为,输入的链表有可能是不属于这个链表的干扰结点。有几个坑需要注意——
1.输入的结点并不全是链表的结点,因此在正式排序前应先提取出有效结点;
2.有可能在第1步完成后,有效结点为0,故输出 0 -1。
代码:
#include <cstdio> #include <algorithm> using namespace std; ; struct Node{ int data; int curr,next; }LinkList[N],node[N]; bool cmp(Node a,Node b){ return a.data<b.data; } int main() { int n,head; scanf("%d%d",&n,&head); int curr,data,next; ;i<n;i++){ scanf("%d%d%d",&curr,&data,&next); LinkList[curr].data=data; LinkList[curr].curr=curr; LinkList[curr].next=next; } //提取有效结点 ; ){ node[cnt++]=LinkList[head]; head=LinkList[head].next; } sort(node,node+cnt,cmp); ){//空链表的情况 printf("0 -1\n"); ; } printf(].curr); ;i<cnt;i++){//注意遍历个数cnt,不是n printf("%05d %d ",node[i].curr,node[i].data); ) printf(].curr); else printf("-1\n"); } ; }
常见的错误写法:
#include <cstdio> #include <algorithm> using namespace std; ; struct Node{ int data; int curr,next; }LinkList[N]; bool cmp(Node a,Node b){ return a.data<b.data; } int main() { //freopen("pat.txt","r",stdin); int n,head; scanf("%d%d",&n,&head); int curr,key,next; ;i<n;i++){ scanf("%d%d%d",&curr,&key,&next); LinkList[i].data=key; LinkList[i].curr=curr; LinkList[i].next=next; } sort(LinkList,LinkList+n,cmp); printf(].curr); ;i<n;i++){ printf("%05d %d ",LinkList[i].curr,LinkList[i].data); ) printf(].curr); else printf("-1\n"); } ; }
1052 Linked List Sorting的更多相关文章
- PAT 解题报告 1052. Linked List Sorting (25)
1052. Linked List Sorting (25) A linked list consists of a series of structures, which are not neces ...
- 【PAT】1052 Linked List Sorting (25)(25 分)
1052 Linked List Sorting (25)(25 分) A linked list consists of a series of structures, which are not ...
- PAT 1052 Linked List Sorting [一般]
1052 Linked List Sorting (25 分) A linked list consists of a series of structures, which are not nece ...
- Pat 1052 Linked List Sorting (25)
1052. Linked List Sorting (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue A ...
- PAT 甲级 1052 Linked List Sorting (25 分)(数组模拟链表,没注意到不一定所有节点都在链表里)
1052 Linked List Sorting (25 分) A linked list consists of a series of structures, which are not ne ...
- 1052. Linked List Sorting (25)
题目如下: A linked list consists of a series of structures, which are not necessarily adjacent in memory ...
- PAT甲题题解-1052. Linked List Sorting (25)-排序
三个注意点: 1.给出的n个节点并不一定都在链表中 2.最后一组样例首地址即为-1 3.输出地址的时候一直忘记前面要补0... #include <iostream> #include & ...
- PAT Advanced 1052 Linked List Sorting (25) [链表]
题目 A linked list consists of a series of structures, which are not necessarily adjacent in memory. W ...
- PAT (Advanced Level) 1052. Linked List Sorting (25)
简单题. #include<iostream> #include<cstring> #include<cmath> #include<algorithm> ...
- PAT甲级1052 Linked List Sorting
题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805425780670464 题意: 给定一些内存中的节点的地址,值 ...
随机推荐
- LeetCode第[66]题(Java):Plus One
题目:数组加一 难度:Easy 题目内容: Given a non-empty array of digits representing a non-negative integer, plus ...
- python中*和**的打包和解包
python中的*和**,能够让函数支持任意数量的参数,它们在函数定义和调用中,有着不同的目的 一. 打包参数 * 的作用:在函数定义中,收集所有的位置参数到一个新的元组,并将这个元组赋值给变量arg ...
- axios 讲解 和vue搭建使用
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- ajax用json实现数据传输
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族 ...
- TF随笔-3
>>> import tensorflow as tf>>> node1 = tf.constant(3.0, dtype=tf.float32)>>& ...
- 头文件string.h中的函数及使用方法
来源:http://blog.csdn.net/tsyj810883979/article/details/5116817 字符串拷贝1 @函数名称: strdup函数原型: char *st ...
- Linux fork exec等
http://www.cnblogs.com/leoo2sk/archive/2009/12/11/talk-about-fork-in-linux.html http://www.cnblogs.c ...
- 高级C/C++编译技术之读书笔记(四)之定位库文件
最近有幸阅读了<高级C/C++编译技术>深受启发,该书深入浅出地讲解了构建过程(编译.链接)中的各种细节,从多个角度展示了程序与库文件或代码的集成方法,提出了面向代码复用和系统集成的软件架 ...
- flask中cookie和session介绍
flask中cookie和session介绍 一.cookie: 在网站中,http请求是无状态的.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户.co ...
- MAC OS X常用命令总结
附录:UNIX常用命令 ============================================================================ 1. cd ...