文章

54

粉丝

0

获赞

12

访问

1.1k

头像
二叉排序树2 题解:
P1411 华中科技大学机试题
发布于2026年1月28日 17:27
阅读数 13

#include<iostream>
#include<map>
using namespace std;

const int N=110;

struct tr{
	int value;
	tr *l,*r;
};

int n;

void create(int x,tr* &t)
{
	if(t==nullptr)
	{
		t=new tr;
		t->value=x;
	}
	else
	{
		if(t->value<x)
			create(x,t->r);
		else
			create(x,t->l);
	}
}
void l(tr *t)
{
	if(t==nullptr)
		return;
	cout<<t->value<<" ";
	l(t->l),l(t->r);
}
void m(tr *t)
{
	if(t==nullptr)
		return;
	m(t->l);
	cout<<t->value<<" ";
	m(t->r);
}
void r(tr *t)
{
	if(t==nullptr)
		return;
	r(t->l);
	r(t->r);
	cout<<t->value<<" ";
}

int main()
{
	while(cin>>n)
	{
		map<int,int> a;
		tr *t=nullptr;
		for(int i=0;i<n;i++)
		{
			int x;
			cin>>x;
			if(a.count(x))
				continue;
			a[x]=1;
			create(x,t);
		}
		l(t);
		puts("");
		m(t);
		puts("");
		r(t);
		puts("");
	}
	return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发