//说实话,这个真的不难,前提是想好插入和删除一条链的方法
用数组模拟:
1.定义每个节点的val
e[n]定义当前点
ne[n] 定义下一个节点的位置
空节点下标用-1表示

#include<iostream>
using namespace std;
const int N=100010;
//head 表示头结点的下标
//e[i] 表示节点i的值
//ne[i] 表示节点i的next指针是多少
//idx存储当前已经用到了哪个点
 
void init(){
    head=-1;
    idx=0;
}
void add_to_head(int x){
    e[idx]=x;
    ne[idx]=head;
    head=idx++;
}
//将x插到头节点
void add(int x,int k){
    e[idx]=x;
    ne[idx]=ne[k];
    ne[k]=idx++;
}
//将x插到k的后面
void remove(int k){
    ne[k]=ne[ne[k]];
}
//删除k后面的数
int main(){
    int m;
    cin>>m;
    while(m--){
        char op;
        int k,x;
        cin>>op;
        if(op==‘H‘) cin>>x,add_to_head(x);
        else
            if(op==‘D‘) cin>>k,remove(k);
        else cin>>k>>x,add(k,x);
    }
    for(int i=head&&i!=-1;i=ne[i]){
        cout<</iostream>原文:https://www.cnblogs.com/RevolutionBP/p/15111156.html