本蒟蒻的代码不输出了,只因我的链表题作死打二叉树,因此求修改
  • 板块P1160 队列安排
  • 楼主shalu
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/7/27 22:13
  • 上次更新2023/11/3 07:18:32
查看原帖
本蒟蒻的代码不输出了,只因我的链表题作死打二叉树,因此求修改
920861
shalu楼主2023/7/27 22:13

代码如下:


#include<bits/stdc++.h>
using namespace std;
const int MAXN=1e5+5;
struct node{
	bool pd;
	int l,r;
}s[MAXN];
int n,m;
void add(int i,int k,int p){
	if(p==0){
		if(s[k].l!=0){
			s[i].l=s[k].l;
			s[k].l=i;
		}
		else{
			s[k].l=i;
		}
	}
	else if(p==1){
		if(s[k].r!=0){
			s[i].r=s[k].r;
			s[k].r=i;
		}
		else{
			s[k].r=i;
		}
	}
}
void dfs(int k){
	if(s[k].l==0&&s[k].r==0){
		return ;
	}
	dfs(s[k].l);
	if(s[k].pd){
		cout<<k<<" ";
	}
	dfs(s[k].r);
}
int main(){
	for(int i=1;i<=n;i++){
		s[i].pd=1;
	}
	cin>>n;
	for(int i=2;i<=n;i++){
		int k,p;
		cin>>k>>p;
		add(i,k,p);
	}
	cin>>m;
	for(int i=1;i<=m;i++){
		int x;
		cin>>x;
		s[x].pd=0;
	}
	dfs(1);
	return 0;
}
2023/7/27 22:13
加载中...