數組模擬單鏈表【頭插,中插,刪除】

在這裏插入圖片描述
在這裏插入圖片描述
代碼如下:

#include<bits/stdc++.h>
using namespace std;
const int maxn=100010;
int head,e[maxn],ne[maxn],idx,m;
void add(int x)
{
	e[idx]=x;
	ne[idx]=head;
	head=idx++;
}
void insert(int k,int x)
{
	e[idx]=x;
	ne[idx]=ne[k];
	ne[k]=idx++;
}
void del(int k)
{
	ne[k]=ne[ne[k]];
}
int main()
{
	head=-1;
	cin>>m;
	while(m--)
	{
		string op;
		int k,x;
		cin>>op;
		if(op=="D")	
		{
			cin>>k;
			if(!k)	head=ne[head];
			del(k-1);
		}
		else if(op=="H")
		{
			cin>>x;
			add(x);
		}
		else if(op=="I")
		{
			int k,x;
			cin>>k>>x;
			insert(k-1,x);
		}
	}
	for(int i=head;i!=-1;i=ne[i])
		cout<<e[i]<<" ";
}
			
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章