问题描述

本题任务是维护一条非递减的链表,初始长度为 0,记这条链表为主链表。
对主链表做 N 次操作,操作分两种:
1 k a1 a2 … ak,表示一条长度为 k 且非递减的链表,需要将这条链表合并到
主链表上,保持合并后的链表仍然是非递减的。
2 x,表示删除主链表中所有值为 x 的节点, 不保证链表中存在 x。
最后按非递减顺序输出主链表。

★数据输入
第一行为数据 N,表示操作次数。
接下来 N 行,每行为 1 k a1 a2 … ak 或 2 x。
数据保证:
80%的数据, N <= 1000, Σk <= 1000
100%的数据, N <= 100000, Σk <= 100000, 0 <= a[i] <= 1000000000

★数据输出
一行输出主链表, 数据保证最后主链表包含至少一个元素。

输入示例 输出示例
3
1 4 1 2 2 3
2 2
1 2 0 4
0 1 3 4

思路

  要插入的数存一数组,要删除的数放另一数组,排序,按顺序判断,得到未删除的元素并输出

code

 #include <stdio.h>
#include <iostream>
using namespace std;
#include <algorithm>
#include <vector> int main()
{
int i,j,u;
int n;
int op,num,buf;
vector<int> vec;
vector<int> era; scanf("%d",&n);
for(i=;i<n;i++)
{
scanf("%d %d",&op,&num);
if(op==)
{
for(j=;j<num;j++)
{
scanf("%d",&buf);
vec.push_back(buf);
}
}
else // op==2
{
era.push_back(num);
}
}
sort(vec.begin(),vec.end());
sort(era.begin(),era.end());
for(i=,j=; i<vec.size(); )
{
if(j==era.size())
{
printf("%d ",vec[i++]);
}
else if(vec[i] < era[j])
{
printf("%d ",vec[i++]);
}
else if(vec[i]==era[j])
{
i++;
}
else if(vec[i] > era[j])
{
j++;
}
else
{
printf("error\n");
}
} return ;
}

数据结构 merge_link合并链表的更多相关文章

  1. 数据结构之合并链表STL

    #include <iostream> #include <list> using namespace std; int main() { int n, m; while (c ...

  2. SDUT OJ 数据结构实验之链表四:有序链表的归并

    数据结构实验之链表四:有序链表的归并 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Desc ...

  3. SDUT-2119_数据结构实验之链表四:有序链表的归并

    数据结构实验之链表四:有序链表的归并 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 分别输入两个有序的整数序列(分别包 ...

  4. python数据结构与算法——链表

    具体的数据结构可以参考下面的这两篇博客: python 数据结构之单链表的实现: http://www.cnblogs.com/yupeng/p/3413763.html python 数据结构之双向 ...

  5. Python数据结构之单链表

    Python数据结构之单链表 单链表有后继结点,无前继结点. 以下实现: 创建单链表 打印单链表 获取单链表的长度 判断单链表是否为空 在单链表后插入数据 获取单链表指定位置的数据 获取单链表指定元素 ...

  6. [数据结构]P1.1 链表结构

    * 注: 本文/本系列谢绝转载,如有转载,本人有权利追究相应责任. 2019年4月8日 Stan Zhang 2019年4月8日  格物致知,经世致用. [面试题]1.为什么要用链表? 数组具有的缺陷 ...

  7. SDUT OJ 数据结构实验之链表九:双向链表

    数据结构实验之链表九:双向链表 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Descrip ...

  8. SDUT OJ 数据结构实验之链表八:Farey序列

    数据结构实验之链表八:Farey序列 Time Limit: 10 ms Memory Limit: 600 KiB Submit Statistic Discuss Problem Descript ...

  9. SDUT OJ 数据结构实验之链表七:单链表中重复元素的删除

    数据结构实验之链表七:单链表中重复元素的删除 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem ...

随机推荐

  1. Express+Mongoose(MongoDB)+Vue2全栈微信商城项目全记录(一)

    最近用vue2做了一个微信商城项目,因为做的比较仓促,所以一边写一下整个流程,一边稍做优化. 项目github地址:https://github.com/seven9115/vue-fullstack ...

  2. Node.Js and Mongoose

    Mongoose官方API,我做完之后整理出来的心得. ONE· Getting Started First be sure you have MongoDB and Node.js installe ...

  3. java 守护线程整理

    java中finally语句不走的可能存在system.exit(0)与守护线程 线程sleep采用TimeUnit类 设定线程的名字thread.getcurrentThread().setName ...

  4. JVM介绍(一)

    1. 什么是JVM? JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来 ...

  5. 如何上Chrome谷歌商店

    将以下代码复制到本地Hosts中即可. #Google Services START64.233.162.83 0.docs.google.com64.233.162.83 0.drive.googl ...

  6. gulp之文件合并以及整合html中的script和link

    gulp的文件合并,也就是将多个js或css文件合并为一个的插件是:gulp-concat gulp将html中的多个<script>或<link>合并为一个的插件是:gulp ...

  7. PHP根据两点间的经纬度计算距离,php两点经纬度计算(转)

    这是一个不错的示例,直接贴代码,首先要知道纬度值.经度值 /** * @desc 根据两点间的经纬度计算距离 * @param float $lat 纬度值 * @param float $lng 经 ...

  8. live555源码分析----RSTPServer创建过程分析

    最近五一回家,终于有机会能安静的看一下流媒体这方面相关的知识,准备分析live555的源码,接下来会把我读源码的过程记录成博客,以供其他的同路人参考. 因为再读源码的过程中,并不是一路顺着读下来,往往 ...

  9. QString乱谈(2)

    长期以来,很多人都清楚,一旦C++源码中直接使用了中文,这样的源码想要跨平台(I18N)会非常困难. 随着: Windows下:MSVC2010成为主流 Linux下:GCC升级到4.6 C++中的中 ...

  10. Python中str.format()字典及list传入详解