ACwing 826单链表:

数组模拟实现链表操作:

链表:实质上是含有数据信息和前驱的节点组成的链,通过改变前驱来对链表进行增加,删除和插入,和链式前向星原理相同

参考代码:

#include<bits/stdc++.h>
using namespace std;
int head=-1,cnt,q[100005],nex[100005];
void add(int x)
{
    q[cnt]=x;
    nex[cnt]=head;
    head=cnt++;
}
void inser(int k,int w)
{
    q[cnt]=w;
    nex[cnt]=nex[k];
    nex[k]=cnt++;
}
void de(int i)
{
    nex[i]=nex[nex[i]];
}
int main()
{
    int n,x,w;
    cin>>n;
    while(n--)
    {
        char c;
        cin>>c;
        if(c=='H')
        {

            cin>>x;
            add(x);
        }
        if(c=='I')
        {
            cin>>x>>w;
            inser(x-1,w);
        }
        if(c=='D')
        {
            cin>>x;
            if(!x)
                head=nex[head];
            else
                de(x-1);
        }
        for(int i=head; ~i; i=nex[i])
            cout<<q[i]<<' ';
    }
}
发布了254 篇原创文章 · 获赞 25 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/yangzijiangac/article/details/105362242