[ACW]826.单链表

题链

tips:

  1.数组模拟单链表,快

  2.一些边界条件的考虑出题人已经除去了

  3.题意的理解

  4.下标用来索引,指针,逻辑与物理的区别

#include<iostream>

using namespace std;

const int N=10010;

int head,e[N],ne[N],idx;

void init(){
    head=-1;
    idx=0;
}

void add_to_head(int x){
    e[idx]=x;
    ne[idx]=head;
    head=idx;
    idx++;
}

void add(int k,int x){
    e[idx]=x;
    ne[idx]=ne[k];
    ne[k]=idx;
    idx++;
}

void rremove(int k){
    ne[k]=ne[ne[k]];
}
int main(){
    int m;
    cin>> m;
    init();
    while(m--){
        int k,x;
        char op;
        inc>>op;

        if(op == 'H'){
            cin>>x;
            add_to_head();
        }
        else if(op == 'D'){
            cin>>k;
            if(!k) head=ne[head];
            rremove(k-1);
        }
        else{
            cin>>k>>x;
            add(k-1,x);
        }
    }

    for(int i=head; i!=-1; i=ne[i]) cout<<e[i]<<' ';
    cout<<endl;
    return 0;
}
View Code

猜你喜欢

转载自www.cnblogs.com/SUMaywlx/p/11440862.html
今日推荐