数据结构——单链表(数组模拟)

Posted flydoggie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构——单链表(数组模拟)相关的知识,希望对你有一定的参考价值。

#include<iostream>
using namespace std;

const int N = 100010;

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

//初始化链表
void init(){
    head = -1;
    idx = 0;
}
//删除第K个数后面的数
void del(int k){
    ne[k] = ne[ne[k]];
}

//在第K个数后面插入x
void insert(int k,int x){
    value[idx] = x;
    ne[idx] = ne[k];
    ne[k] = idx ++;
}
//在链表首部添加一个x
void add(int x){
    value[idx] = x;
    ne[idx] = head;
    head = idx ++;
}



int main(){
    int n;
    cin>>n;
    char ch;
    int k ,x ;
    init();
    while(n--){
        cin>>ch;
        if(ch == H){
            cin>>x;
            add(x);
        }
        if(ch == D){
            cin>>k;
            if(k==0){head = ne[head];}
            else del(k-1);
        }
        if(ch == I){
            cin>>k>>x;
            insert(k-1,x);
        }
    }
   // cout<<idx<<" ";
    for(int i = head ; i != -1 ; i = ne[i]){
        cout<<value[i]<<" ";
    }
    cout<<endl;
    return 0;
}

 

以上是关于数据结构——单链表(数组模拟)的主要内容,如果未能解决你的问题,请参考以下文章

数组模拟实现数据结构

数组模拟链表

数据结构(单链表,双链表)

数据结构(单链表,双链表)

数据结构(单链表,双链表)

数据结构与算法