一个是Data Value,一个是下一个数值的位置
题目里要将x插入到第k个插入的数后面,第k个插入的数下标是k - 1,所以调用的时候是add(k - 1, x),remove(k-1)。如果你一开始将idx=1(初始化),那么下标和k就统一了,就不需要再k-1了
m=int(input())
head=-1 # head所在位置
ne=[-1]*100000 # 指针 next
idx=0
e=[None]*100000 # 数值
def add_to_head(x): # 在head和第一个点之间插入
global idx,ne,head
e[idx]=x # 在idx处存储x值
ne[idx]=head # 指针指向head对应的值
head=idx # head指向idx
idx+=1
def add(k,x): # 将x插入到下标为k的点的后面
global idx,ne,head
e[idx]=x # 在idx处存储x值
ne[idx]=ne[k] # idx的指针指向k的下一个位置
ne[k]=idx # k的下一个位置为idx
idx+=1
def remove(k): # 把k后面的点删掉
global ne,head
if k==-1:
head=ne[head] #head的下一个为head
else: ne[k]=ne[ne[k]] # ne[k]再ne一次
while m:
m-=1
tmp=input().split()
if tmp[0]=='H': add_to_head(int(tmp[1]))
if tmp[0]=='D': remove(int(tmp[1])-1)
if tmp[0]=='I': add(int(tmp[1])-1,int(tmp[2]))
i=head
while(~i):
print(e[i],end=' ')
i=ne[i]