#DS0208. 光头强学数组

光头强学数组

题目描述

传统的数组需要事先指定其长度,而在图论中,有相当一部分题目无法预知每个数组所需的长度,因此需要使用长度可变的数组。

我们可以运用数据结构中顺序表的知识,自己设计一个变长数组。

实际上作为典型的数据结构,在 C++ 中可以直接使用 vector,而在 Java 中可以直接使用 ArrayList

本题目要求为,给你 nn 次操作,针对每次操作,输出相应的结果。可能的操作如下:

  • push x y,将数字 y 压入到数组 x 的最后,并输出数组 x 中的数据个数。
  • show x,将数组 x 的数据依次输出。如果数组 x 没有数据,输出 null
  • clear x,输出数组 x 的数据个数,并将数组 x 的数据清空。

建议你用两种方式(自己实现和调库)分别通过此题。

输入格式

第一行读入 nn,表示操作数。

后面 nn 行每行给出一个操作,具体格式和含义见题目描述部分。

输出格式

根据每条指令输出相应的结果。

5
push 1 3
push 1 2
push 1 1
show 1
push 5 8
1
2
3
3 2 1
1
5
show 100
push 1000 666
push 100000 888
clear 1000
clear 1000
null
1
1
1
0

数据规模

对于所有数据,保证 1n2000001≤n≤2000001x1000001≤x≤1000001y1091≤y≤10^9

题目保证输出的数字个数不超过 10610^6

提示

本题输出较多,Java 可以学习使用 PrintWriter 进行输出。

创建一个输出对象: PrintWriter pw = new PrintWriter(System.out);

输出结果: pw.println pw.print pw.printf 用法与 System.out.print 系列一致。

清空缓冲区: 程序结束前,执行 pw.close() 或者 pw.flush() 即可。(注意,不清空缓冲区可能导致没有输出)