AcWing 826.单链表

#includeusing namespace std;const int N = 1e5+10;//head表示头结点的下标
//e[i]表示节点i的值
//ne[i]表示节点i的next指针是多少
//idx存储当前已经用到了哪个点 
int head,e[N],ne[N],idx;//初始化 
void init()
{head = -1;idx = 0;
}//将x插入到头结点 
void add_to_head(int x)
{e[idx] = x, ne[idx]=head, head = idx++;
}//将x插入到头下标是k的点后面
void add(int k, int x)
{e[idx] = x, ne[idx] = ne[k], ne[k] = idx++;
}
//将下标是k的点后面的点删掉 
void remove(int k)
{ne[k] = ne[ne[k]];
}int main()
{int m;cin >>m;init();while(m--){int k,x;char op;cin >> op;if(op == 'H'){cin >> x;add_to_head(x);}else if(op == 'D'){cin >> k;if(!k) head = ne[head];else remove(k-1);}else{cin >> k >> x;add(k - 1, x);}}for(int i = head; i != -1; i = ne[i]) cout << e[i] << ' ';cout <


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部