20pts在线求调<数组模拟链表>
查看原帖
20pts在线求调<数组模拟链表>
1199889
IAKpoki楼主2024/7/8 21:11
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int pre[N];
int nxt[N];
int main(){
	int n;
	cin>>n;
	int head=1;
	int k,p;
	for(int i=2;i<=n;i++){
		cin>>k>>p;
		if(p==0){
			if(k=head){
				head=i;
			}
			pre[i]=pre[k];
			nxt[i]=k;
			nxt[pre[k]]=i;
			pre[k]=i;
		}else{
			pre[i]=k;
			nxt[i]=nxt[k];
			nxt[k]=i;
			pre[nxt[i]]=i;
		}
	} 
	int q;
	cin>>q;
	while(q--){
		int x;
		cin>>x;
		if(x==head){
			head=nxt[x];
		}
		nxt[pre[x]]=nxt[x];
		pre[nxt[x]]=pre[x];
		pre[x]=0;
		nxt[x]=0;
	}
	for(int i=head;i!=0;i=nxt[i]){
		cout<<i<<" ";
	}
	return 0;
} 
2024/7/8 21:11
加载中...