题意:把链表按规则调整,使小于0的先输出,然后输出键值在[0,k]的,最后输出键值大于k的。

思路:利用vector<Node> v,v1,v2,v3。遍历链表,把小于0的push到v1中,把[0,k]的push到v2中,把大于k的push到v3中,最后把v1,2,3中的按顺序push到v中,在顺序输出v就好了。【注意点】:给出的n个结点不一定都是链表的结点,我在第一遍做的时候,在最后遍历v输出结果时,for循环写成了 ;i<n;i++) ,因为我想链表的结点个数不就是n嘛,结果有一个测试点过不去,想了许久才发现这个坑,在做链表类型的题时,这个坑一定引起重视,又如1052 Linked List Sorting

代码:

#include <cstdio>
#include <vector>
using namespace std;
;
struct Node{
    int data;
    int addr,next;
}LinkList[maxn];

int main()
{
    int head,n,k;
    scanf("%d%d%d",&head,&n,&k);
    int addr,data,next;
    ;i<n;i++){
        scanf("%d%d%d",&addr,&data,&next);
        LinkList[addr].addr=addr;
        LinkList[addr].data=data;
        LinkList[addr].next=next;
    }
    vector<Node> v1,v2,v3,v;
    int p=head;
    ){
        ) v1.push_back(LinkList[p]);
        else if(LinkList[p].data>k) v3.push_back(LinkList[p]);
        else v2.push_back(LinkList[p]);
        p=LinkList[p].next;
    }
    for(auto it:v1) v.push_back(it);
    for(auto it:v2) v.push_back(it);
    for(auto it:v3) v.push_back(it);
    ;i<v.size();i++){//注意这里不能写成i<n!!!
        ) printf(].addr);
        else printf("%05d %d -1\n",v[i].addr,v[i].data);
    }
    ;
}

1133 Splitting A Linked List的更多相关文章

  1. PAT 1133 Splitting A Linked List[链表][简单]

    1133 Splitting A Linked List(25 分) Given a singly linked list, you are supposed to rearrange its ele ...

  2. PAT 1133 Splitting A Linked List

    Given a singly linked list, you are supposed to rearrange its elements so that all the negative valu ...

  3. PAT1133:Splitting A Linked List

    1133. Splitting A Linked List (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Y ...

  4. PAT_A1133#Splitting A Linked List

    Source: PAT A1133 Splitting A Linked List (25 分) Description: Given a singly linked list, you are su ...

  5. PAT-1133(Splitting A Linked List)vector的应用+链表+思维

    Splitting A Linked List PAT-1133 本题一开始我是完全按照构建链表的数据结构来模拟的,后来发现可以完全使用两个vector来解决 一个重要的性质就是位置是相对不变的. # ...

  6. A1133. Splitting A Linked List

    Given a singly linked list, you are supposed to rearrange its elements so that all the negative valu ...

  7. PAT A1133 Splitting A Linked List (25 分)——链表

    Given a singly linked list, you are supposed to rearrange its elements so that all the negative valu ...

  8. PAT甲级——A1133 Splitting A Linked List【25】

    Given a singly linked list, you are supposed to rearrange its elements so that all the negative valu ...

  9. PAT A1133 Splitting A Linked List (25) [链表]

    题目 Given a singly linked list, you are supposed to rearrange its elements so that all the negative v ...

随机推荐

  1. c# 使用事务

    EcAttendanceMatterBLL.OpenTransaction(); DbTransaction Tran = EcAttendanceMatterBLL.Transaction; _wf ...

  2. ctci1.1

    )         ;     ; i < len; i++){         if(place.find(str[i]) == place.end())             place. ...

  3. 分享知识-快乐自己:MYSQL之內链接 左链接 右链接 区别

    MYSQL中可以通过内外键链接,将有关系的表中数据合并到一起进行条件筛选: 首先创建两个新表,数据如下: student 表数据: score 表数据: 可以看到students表中stu_id为16 ...

  4. 使用命令行启动spring boot项目

    1.找到项目路径 cd target 2.敲命令--------java -jar xxxx.jar ------------------------------------------------- ...

  5. Spring 依赖注入(一、注入方式)

    Spring是一个依赖注入(控制反转)的框架,那么依赖注入(标控制反转)表现在那些地方了? 即:一个类中的属性(其他对象)不再需要手动new或者通过工厂方法进行创建,而是Spring容器在属性被使用的 ...

  6. Codeforces Round #394 (Div. 2) D. Dasha and Very Difficult Problem

    D. Dasha and Very Difficult Problem time limit per test:2 seconds memory limit per test:256 megabyte ...

  7. 内存保护机制及绕过方案——通过覆盖虚函数表绕过/GS机制

    1    GS内存保护机制 1.1    GS工作原理 栈中的守护天使--GS,亦称作Stack Canary / Cookie,从VS2003起开始启用(也就说,GS机制是由编译器决定的,跟操作系统 ...

  8. 一次完整的HTTP请求

    HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤: 1:建立TCP连接,TCP的三次握手 在HTTP工作开始之前,Web浏览器首先要通过网络与Web服 ...

  9. 常用的两个PHP类

      /** * Class Interval * @author logonmy * @desc 简单分析程序执行时间: */   Class Interval{ var $start;   publ ...

  10. Android的长度单位及屏幕分辨率

    屏幕分辨率基础 1.术语和概念 术语 说明 备注 Screen size(屏幕尺寸) 指的是手机实际的物理尺寸,比如常用的2.8英寸,3.2英寸,3.5英寸,3.7英寸 摩托罗拉milestone手机 ...