九度題目1467 二叉排序樹 北郵2012機試

這個題應該說沒有什麼難度。不過卻因此發現果然還是微軟的編譯器比較符合我的習慣,gcc神馬的真心用不慣。

#include <stdio.h>
typedef struct Tree Tree;
struct Tree{
	Tree * parent;
	Tree * left;
	Tree * right;
	int value;
}tree1[100];
int createT(Tree *t,Tree *src)
{
	if(src->value<t->value)
	{
		if(t->left==NULL)
		{
			t->left=src;
			src->parent=t;
			return 1;
		}else
		{
			createT(t->left,src);
		}
	}else
	{
		if(t->right==NULL)
		{
			t->right=src;
			src->parent=t;
			return 1;
		}else
		{
			createT(t->right,src);
		}
	}
	return 0;
}
int main()
{
	int n=0;
	while (~scanf("%d",&n))
	{
		for(int i=0;i<n;i++)
		{
			scanf("%d",&tree1[i].value);
			tree1[i].left=NULL;
			tree1[i].right=NULL;
			if(i==0)
			{
				tree1[i].parent=NULL;
			}else
			{
				createT(&tree1[0],&tree1[i]);
			}
		}
		for(int i=0;i<n;i++)
		{
			if(i==0)
			{
				printf("-1\n");
			}else
			{
				printf("%d\n",(tree1[i].parent)->value);
			}
		}
	}
	return 0;
}




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章