题意:把链表按规则调整,使小于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. ZC_RemoteThread

    1.Z_WinMain.cpp #include <windows.h> #include "resource.h" #include "Z_RemoteFu ...

  2. Author Agreement

    Dear Editor,We the undersigned declare that this manuscript entitled “文章标题” is original, has not bee ...

  3. 【C#基本功 控件的用法】 Toolbar的用法

    之前从事Labview编程,Labview是一门快速编程的语言,虽然快速,但作为一门语言他灵活性不够,有些方面也不是很给力,就比如 Toolbar labview就没有Toolbar的基础控件,虽然可 ...

  4. JsonTools 工具类

    import net.sf.json.JSONObject; public class JsonTools { public static JSONObject getJSONObject(Strin ...

  5. Java基础16:Java多线程基础最全总结

    Java基础16:Java多线程基础最全总结 Java中的线程 Java之父对线程的定义是: 线程是一个独立执行的调用序列,同一个进程的线程在同一时刻共享一些系统资源(比如文件句柄等)也能访问同一个进 ...

  6. 九 web爬虫讲解2—urllib库爬虫—实战爬取搜狗微信公众号—抓包软件安装Fiddler4讲解

    封装模块 #!/usr/bin/env python # -*- coding: utf-8 -*- import urllib from urllib import request import j ...

  7. redis memcache rabbitMQ

    Python之路[第九篇]:Python操作 RabbitMQ.Redis.Memcache.SQLAlchemy Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动 ...

  8. fastjson缺陷--map转换json时出现$ref的情况

    DisableCircularReferenceDetect来禁止循环引用检测: JSON.toJSONString(..., SerializerFeature.DisableCircularRef ...

  9. L126

    Like so many things, it is not what's outside, but what is inside that counts. 许多事物都是如此,外表看起來虽不起眼,但是 ...

  10. android事件传递机制以及onInterceptTouchEvent()和onTouchEvent()总结

    老实说,这两个小东东实在是太麻烦了,很不好懂,我自己那api文档都头晕,在网上找到很多资料,才知道是怎么回事,这里总结一下,记住这个原则就会很清楚了: 1.onInterceptTouchEvent( ...