AcWing 826. 单链表
原题链接
简单
作者:
ACSaber
,
2020-11-26 22:13:24
,
所有人可见
,
阅读 219
import java.util.*;
import java.io.*;
class Main {
private static int N = 100010;
private static int head;
private static int[] e;
private static int[] ne;
private static int idx;
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out));
init();
int m = Integer.parseInt(reader.readLine());
for (int i = 0; i < m; i++) {
String[] s = reader.readLine().split(" ");
if (s[0].equals("H")) {
add(Integer.parseInt(s[1]));
} else if (s[0].equals("D")) {
delete(Integer.parseInt(s[1]));
} else if (s[0].equals("I")) {
insert(Integer.parseInt(s[1]), Integer.parseInt(s[2]));
}
}
int tmp = head;
while (tmp != -1) {
writer.write(e[tmp] + " ");
tmp = ne[tmp];
}
writer.flush();
writer.close();
reader.close();
}
private static void init() {
head = -1;
e = new int[N];
ne = new int[N];
idx = 1;
Arrays.fill(ne, -1);
}
private static void add(int x) {
e[idx] = x;
ne[idx] = head;
head = idx;
idx++;
}
private static void delete(int k) {
if (k == 0) {
head = ne[head];
} else {
ne[k] = ne[ne[k]];
}
}
private static void insert(int k, int x) {
e[idx] = x;
ne[idx] = ne[k];
ne[k] = idx;
idx++;
}
}