数组模拟实现链表操作:
链表:实质上是含有数据信息和前驱的节点组成的链,通过改变前驱来对链表进行增加,删除和插入,和链式前向星原理相同
参考代码:
#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]<<' ';
}
}