求助,这个代码为什么不对
  • 板块P2171 Hz吐泡泡
  • 楼主yhy_csp
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/7/14 15:05
  • 上次更新2023/10/27 20:23:57
查看原帖
求助,这个代码为什么不对
574863
yhy_csp楼主2022/7/14 15:05
#include <bits/stdc++.h>
using namespace std;
struct node
{
	int v,l,r;
}tree[300001];
void print(int i)
{
	if(tree[i].v!=0)
	{
		print(tree[i].l);
		print(tree[i].r);
		cout<<tree[i].v<<endl;
	}
}
int dfs(int i)
{
	int maxn;
	if(tree[i].v!=0)
	{
		maxn=max(dfs(tree[i].l),dfs(tree[i].r))+1;
	}
	return maxn;
}
int cnt=0;
int main()
{
	int n,s;
	cin>>n;
	cin>>s;
	tree[1].v=s;
	cnt++;
	for(int i=2;i<=n;i++)
	{
		cin>>s;
		int tot=1;
		while(tree[tot].v!=0)
		{
			if(tree[tot].v>=s && tree[tot].l==0)
			{
				tree[tot].l=i;
			}
			else if(tree[tot].v<s && tree[tot].r==0)
			{
				tree[tot].r=i;
			}
			if(tree[tot].v<s)
				tot=tree[tot].r;
			else
				tot=tree[tot].l;
		}
		tree[i].v=s;
	}
	cout<<"deep="<<dfs(1)<<endl;
	print(1);
	return 0;
}
2022/7/14 15:05
加载中...