问题描述

本题任务是维护一条非递减的链表,初始长度为 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. java-03方法课堂练习

    1.java中利用static(静态),将方法放入类中.如果不加static,必须先实例化出来一个类,之后再通过实例化类名+方法的形式调用. 2.编写一个方法,使用以上算法生成指定数目(比如1000个 ...

  2. 冒泡算法-bubble

    冒泡算法在数据只有几个无序时是最快的算法,但是如果全部无序的话就变成了最慢的算法了,时间复杂度为O(n^2) public class bubbleSort { public static void ...

  3. webpack 开发环境

    当项目逐渐变大,webpack 的编译时间会变长,可以通过参数让编译的输出内容带有进度和颜色. $ webpack --progress --colors 如果不想每次修改模块后都重新编译,那么可以启 ...

  4. centos7 node express项目 将http接口升级为https接口的解决方法

    1.将对应的ssl证书放到项目文件中(我装的镜像是oneinstack的,创建项目时可以直接选择生成ssl证书的项目,即 xxx.key 和 xxx.crt 文件): 2.修改bin/www文件,修改 ...

  5. TCP之半关闭与CLOSE_WAIT

    终止一个连接要经过4次握手.这由TCP的半关闭(half-close)造成的.既然一个TCP连接是全双工(即数据在两个方向上能同时传递,可理解为两个方向相反的独立通道),因此每个方向必须单独地进行关闭 ...

  6. Common 通用类库

    /// <summary> /// 传入虚拟路径 返回全路径的html字符串 /// </summary> /// <param name="context&q ...

  7. 蓝桥杯 基础练习 BASIC-14 时间转换

    基础练习 时间转换   时间限制:1.0s   内存限制:512.0MB 问题描述 给定一个以秒为单位的时间t,要求用“<H>:<M>:<S>”的格式来表示这个时间 ...

  8. 开发环境入门 linux基础 (部分) 复制 用户和组操作 权限更改

    复制 用户和组操作 权限更改 CP 复制命令 cp 源文件 目标文件 a) –r(recursive,递归的):递归地复制目录.当复制一个目录时,复制该目录中所有的内容,其中包括子目录的全部内容. b ...

  9. C语言在32位和64位机器下数字数据类型的字节数取决于编译器和平台, 主要由编译器决定。

    C语言中数字数据类型的字节数 C声明 32位机器 64位机器 char 1 1 short int 2 2 int   4 4 //整型在32位和64位下都是4个字节 long int   4 8 l ...

  10. paramiko连接方式

    链接方法: 方式一: ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh. ...