数据结构 merge_link合并链表
问题描述
本题任务是维护一条非递减的链表,初始长度为 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合并链表的更多相关文章
- 数据结构之合并链表STL
#include <iostream> #include <list> using namespace std; int main() { int n, m; while (c ...
- SDUT OJ 数据结构实验之链表四:有序链表的归并
数据结构实验之链表四:有序链表的归并 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Desc ...
- SDUT-2119_数据结构实验之链表四:有序链表的归并
数据结构实验之链表四:有序链表的归并 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 分别输入两个有序的整数序列(分别包 ...
- python数据结构与算法——链表
具体的数据结构可以参考下面的这两篇博客: python 数据结构之单链表的实现: http://www.cnblogs.com/yupeng/p/3413763.html python 数据结构之双向 ...
- Python数据结构之单链表
Python数据结构之单链表 单链表有后继结点,无前继结点. 以下实现: 创建单链表 打印单链表 获取单链表的长度 判断单链表是否为空 在单链表后插入数据 获取单链表指定位置的数据 获取单链表指定元素 ...
- [数据结构]P1.1 链表结构
* 注: 本文/本系列谢绝转载,如有转载,本人有权利追究相应责任. 2019年4月8日 Stan Zhang 2019年4月8日 格物致知,经世致用. [面试题]1.为什么要用链表? 数组具有的缺陷 ...
- SDUT OJ 数据结构实验之链表九:双向链表
数据结构实验之链表九:双向链表 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Descrip ...
- SDUT OJ 数据结构实验之链表八:Farey序列
数据结构实验之链表八:Farey序列 Time Limit: 10 ms Memory Limit: 600 KiB Submit Statistic Discuss Problem Descript ...
- SDUT OJ 数据结构实验之链表七:单链表中重复元素的删除
数据结构实验之链表七:单链表中重复元素的删除 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem ...
随机推荐
- docker下安装 Oracle11gR2
这是第二次安装,在第一次安装过程部分内容参考自如下: http://blog.sina.com.cn/s/blog_d840ff330102v4j0.html docker下oracle11g安装 h ...
- 6、Selenium+Python登录案例 -- Github
一:登录 1.指定浏览器,打开网址:https://github.com/login 2.设置等待时间: time.sleep(3) or driver.implicitly_wait(3) 3.输入 ...
- 第十篇 javascript基础语法
1)基本概念 a) 语句(statement)是为了完成某种任务而进行的操作,语句以分号结尾,一个分号就表示一个语句结束.:如:var a = 1; b) 表达式(expression),指一个为了得 ...
- MSSQL2008 常用sql语句
一.基础 1.说明:创建数据库 Create DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- ...
- java流2
总结:字符转换 package com.b; //流类 import java.io.*; public class uy { // 读取字符 public static void main(Stri ...
- Java-API:javax.servlet.http.HttpServletRequest
ylbtech-Java-API:javax.servlet.http.HttpServletRequest 1.返回顶部 1. javax.servlet.http Interface HttpSe ...
- Facebook开源的JavaScript库:React
React是Facebook开源的JavaScript库,采用声明式范例,可以传递声明代码,最大限度地减少与DOM的交互. React是Facebook开源的JavaScript库,用于构建UI.你可 ...
- 2015.1.15 利用Oracle函数返回表结果 重大技术进步!
-- sql 调用 select * from table( get_airway_subpoint(x,x,x)) ///////////////////////////////////////// ...
- python正则以及collections模块
正则 一.认识模块 什么是模块:一个模块就是一个包含了python定义和声明的文件,文件名就是加上.py的后缀,但其实import加载的模块分为四个通用类别 : 1.使用python编写的代码(.p ...
- 问题:C#根据生日计算属相;结果:C#实现根据年份计算生肖属相的方法
这篇文章主要介绍了C#实现根据年份计算生肖属相的方法,涉及C#数组与字符串的操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了C#实现根据年份计算生肖属相的方法.分享给大家供大家 ...