这道题算有点难,心目中理想的难度。

不能前怕狼后怕虎,一会担心超时,一会又担心内存过大,直接撸

将三部分分别保存到vector

有意思的在于输出

分别输出第一个的add和num

中间输出nextadd ,换行,add,num

最后输出尾元素的next为-1

#include<iostream>
#include<stdio.h>
#include<map>
#include<string>
#include<algorithm>
#include<vector>
using namespace std;
struct number{
int add,num,next;
}arr[100000];//原始输入
int main() {
int head,N,K;scanf("%d %d %d",&head,&N,&K);
for(int i=0;i<N;i++){ //输入数据
int add;scanf("%d",&add);
arr[add].add=add;
scanf("%d %d",&arr[add].num,&arr[add].next);
}
vector<int> v[3]; //存储三种类型
while(head!=-1){ //遍历链表,把链表分成三份
if(arr[head].num<0) //负数
v[0].push_back(head);
else if(arr[head].num<=K) //【0-K】
v[1].push_back(head);
else v[2].push_back(head); //大于K
head=arr[head].next;
}
int flag=0;
for(int i=0;i<3;i++){
for(int j=0;j<v[i].size();j++){
if(flag==0){ //找出第一个,只输出地址和值
printf("%05d %d ",arr[v[i][j]].add,arr[v[i][j]].num);
flag=1;
}
else //其他的输出上一行的下一个元素,换行,当前元素地址,当前值
printf("%05d\n%05d %d ",arr[v[i][j]].add,arr[v[i][j]].add,arr[v[i][j]].num);
}
}
printf("-1"); //尾指针的next为-1
return 0;
}

【PAT】B1075 链表元素分类(25 分)的更多相关文章

  1. PAT Basic 1075 链表元素分类 (25 分)

    给定一个单链表,请编写程序将链表元素进行分类排列,使得所有负值元素都排在非负值元素的前面,而 [0, K] 区间内的元素都排在大于 K 的元素前面.但每一类内部元素的顺序是不能改变的.例如:给定链表为 ...

  2. PAT——1075. 链表元素分类(25)

    给定一个单链表,请编写程序将链表元素进行分类排列,使得所有负值元素都排在非负值元素的前面,而[0, K]区间内的元素都排在大于K的元素前面.但每一类内部元素的顺序是不能改变的.例如:给定链表为 18→ ...

  3. PAT Basic 1075 链表元素分类(25) [链表]

    题目 给定⼀个单链表,请编写程序将链表元素进⾏分类排列,使得所有负值元素都排在⾮负值元素的前⾯,⽽[0, K]区间内的元素都排在⼤于K的元素前⾯.但每⼀类内部元素的顺序是不能改变的.例如:给定链表为 ...

  4. PAT 1075 链表元素分类

    https://pintia.cn/problem-sets/994805260223102976/problems/994805262953594880 给定一个单链表,请编写程序将链表元素进行分类 ...

  5. P1075 链表元素分类

    P1075 链表元素分类 转跳点:

  6. PAT(B) 1075 链表元素分类(Java)

    题目链接:1075 链表元素分类 (25 point(s)) 题目描述 给定一个单链表,请编写程序将链表元素进行分类排列,使得所有负值元素都排在非负值元素的前面,而 [0, K] 区间内的元素都排在大 ...

  7. L2-002 链表去重 (25 分)

    L2-002 链表去重 (25 分)   给定一个带整数键值的链表 L,你需要把其中绝对值重复的键值结点删掉.即对每个键值 K,只有第一个绝对值等于 K 的结点被保留.同时,所有被删除的结点须被保存在 ...

  8. PAT 甲级 1020 Tree Traversals (25分)(后序中序链表建树,求层序)***重点复习

    1020 Tree Traversals (25分)   Suppose that all the keys in a binary tree are distinct positive intege ...

  9. PAT 1009 Product of Polynomials (25分) 指数做数组下标,系数做值

    题目 This time, you are supposed to find A×B where A and B are two polynomials. Input Specification: E ...

随机推荐

  1. android 中的Http请求类HttpUrlConnection和HttpClient类

    Android系统提供了两种HTTP通信类,HttpURLConnection和HttpClient. 如何选择这两个类的使用:android-developers.blogspot.com/2011 ...

  2. rhel 配置centos源

    1.删除自带的yum包,清除/etc/yum.repos.d下面的文件 rpm -qa|grep yum|xargs rpm -e --nodeps(不检查依赖,直接删除rpm包) 2.安装cento ...

  3. [POI 2009]Lyz

    Description 题库链接 初始时滑冰俱乐部有 \(1\) 到 \(n\) 号的溜冰鞋各 \(k\) 双.已知 \(x\) 号脚的人可以穿 \(x\) 到 \(x+d\) 的溜冰鞋.有 \(m\ ...

  4. functions文件详细分析和说明

    bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html /etc/rc.d/init.d/functions几乎被/e ...

  5. asp.net mvc5轻松实现插件式开发

    在研究Nopcommece项目代码的时候,发现Nop.Admin是作为独立项目开发的,但是部署的时候却是合在一起的,感觉挺好 这里把他这个部分单独抽离出来, 主要关键点: 确保你的项目是MVC5 而不 ...

  6. Web Service 与WebAPI 的区别

    Web Servise: web service 是一种跨编程语言和跨操作系统平台的远程调用技术. 所谓跨编程语言和跨操作系统平台,就是说服务器端程序采用Java编写,客户端程序则可以采用其他编程语言 ...

  7. U盘基本处理,U盘与移动固态硬盘

    一.辨别 USB2.0 和 USB3.0 1.从USB外观上来看,USB2.0通常是白色或黑色,而USB3.0则改观为“高大上”的蓝色接口. 目前,部分笔记本电脑USB接口,已同时提供对USB2.0及 ...

  8. CMD下进入MYSQL的命令

    CMD下进入MYSQL的命令 mysql -h localhost -u root -p 切到MYSQL的bin目录下,输入上面命令,回车 然后输入密码 回车

  9. [android] androidPN开源项目介绍

    打开androidPN项目,会看到server和client两份代码 server部分 找到server的代码,开启服务,双击 bin/run.bat ,服务启动后监听127.0.0.1:7070端口 ...

  10. Maven+Mybatis一些简单例子

    一.创建maven工程 把依赖的包写在pom.xml中.保存后,工程会有错,需要在工程上右键选择“Maven-->Update Project” pom.xml内容为 <project x ...