求助
查看原帖
求助
304211
精神小伙!楼主2021/12/15 21:17
#include<iostream>
using namespace std;
const int maxn=1000010;
int L[maxn],R[maxn],v[maxn],ans=0,tmp=0;
int n,x,id;
void tree_sort(int i,int x)
{
	tmp++;
	if(x<v[i])
	{
		if(L[i]==0) {ans=max(ans,tmp);id++;v[id]=x;L[i]=id;return ;}
		else        tree_sort(L[i],x);
	}
	else
	{
		if(R[i]==0) {ans=max(ans,tmp);id++;v[id]=x;R[i]=id;return ;}
		else        tree_sort(R[i],x);
	}
} 
void houxu(int u)
{
	if(!u) return ;
	houxu(L[u]);
	houxu(R[u]);
	cout<<v[u]<<endl;
}
int main()
{
	cin>>n;
	cin>>x;
	v[1]=x;
	id=1;
	for(int i=2;i<=n;++i)
	{
		cin>>x;
		tmp=1;
		tree_sort(1,x);
	}
	cout<<"deep="<<ans<<endl;
	houxu(1);
	putchar('\n');
	return 0;
}//90分
2021/12/15 21:17
加载中...