HM217 链表赋换
HM217 链表赋换
来源: 第 217 集 list容器-赋值和交换
难度: 普及-
时间限制: 1s
空间限制: 64MB
题目描述
链表创建好之后还可以再赋值,也可以整条互换。赋值不要和构造写在同一行搞混:
- 用重载的
=把整条链表赋给另一条已经存在的链表。 - 用
assign提供一对迭代器,拷贝左闭右开区间。 - 用
assign(k, x)写入 \(k\) 个相同整数。
互换使用成员函数 swap,两条链表的内容对调。
打印函数仍应接受 const 引用,并用 const_iterator 遍历。链表迭代器不能随机加,取区间端点时要从 begin() 一步一步 ++。
先把输入序列依次尾插入 l1,再按上面三种方式得到 l2、l3、l4 并打印四条链表;然后让 l1 与 l4 互换,再打印这两条。
输入格式
第一行一个整数 \(n\)。
第二行 \(n\) 个整数 \(a_i\),依次尾插入 l1。当 \(n=0\) 时本行可以是空行。
第三行两个整数 \(L\)、\(R\),表示 assign 使用的半开区间 \([L,R)\)。
第四行两个整数 \(k\)、\(x\),表示 assign(k, x)。
输出格式
共六行:先依次为赋值后的 l1、l2、l3、l4,再为互换后的 l1、l4。每行用单个空格分隔,行末无多余空格。空链表输出空行。
样例
输入 #1
4
10 20 30 40
0 4
10 100
输出 #1
10 20 30 40
10 20 30 40
10 20 30 40
100 100 100 100 100 100 100 100 100 100
100 100 100 100 100 100 100 100 100 100
10 20 30 40
输入 #2
6
9 8 7 6 5 4
2 5
0 1
输出 #2
9 8 7 6 5 4
9 8 7 6 5 4
7 6 5
9 8 7 6 5 4
说明
\(0 \le n \le 1000\),\(|a_i|,|x| \le 10^9\),\(0 \le L \le R \le n\),\(0 \le k \le 1000\)。
样例 #1:= 与区间 assign 得到 \(10\,20\,30\,40\),assign(10,100) 得到十个 \(100\),再与 l1 互换。样例 #2 的 \([2,5)\) 只取下标 \(2,3,4\);assign(0,1) 得到空链表,该行只输出换行;互换后空链表跑到 l1。
信息
- ID
- 1216
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者