首页 > 其他 > 详细

静态链表

时间:2020-11-07 19:48:02      阅读:24      评论:0      收藏:0      [点我收藏+]

静态链表

#include<iostream>
using namespace std;
const int N  = 1e5+10;
int ne[N];  //存放当前节点下标的下一个位置的下标
int e[N];   //存放每个节点的数据
int idx;    //存储当前已经用到了那个节点
int head;   //表示头结点的下标
void Init()
{
    head = -1;
    idx = 0;
    
}
void add_to_head(int x)
{
    e[idx] = x;
    ne[idx] = head;
    head = idx ++;
    //idx++;
}
//插入到第k个节点后边
void add(int k,int x)
{
    e[idx] = x;
    ne[idx] = ne[k];
    ne[k] = idx ++;
    //idx++;
}
//删除第k各节点的下一个节点
void remove(int k)
{
    ne[k] = ne[ne[k]];
}
int main(void)
{
    int m;
    cin>>m;
    Init();
    while(m--){
        char op[2];
        cin>>op;
        int k,x;
        if(op[0] ==‘H‘){
            
            cin>>x;
            add_to_head(x);
            
        }
        else if(op[0] ==‘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<<endl;
    return 0;
}

静态链表

原文:https://www.cnblogs.com/acm-walker/p/13941219.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!