您的位置:首页 > 其它

HDU 3999 The order of a Tree

2013-07-10 08:59 387 查看

HDU 3999 The order of a Tree

题意:输入一串序列,构造出一颗二叉搜索树,然后输出字典序最小的能组成相同二叉搜索树的序列。
思路:先构造出树,输出其前序遍历就是最小字典序,水过。

#include <iostream>
using namespace std;
#include <stdio.h>
#include <string.h>

int tr;

typedef struct node
{
int data;
struct node *left;
struct node *right;
node(int value) : data(value), left(NULL), right(NULL){};
} Node, *Node1;

void insert(Node1 &root, int value)
{
if (root == NULL)
{
root = new Node(value);
}
else
{
if (value < root -> data)
insert(root -> left, value);
if (value > root -> data)
insert(root -> right, value);
}

}
int bo;
void pre(Node1 root)
{
if (root != NULL)
{
if(bo == 1)
{
printf(" ");
}
else
bo = 1;
printf("%d", root -> data);
pre(root ->left);
pre(root ->right);
}
}
int main()
{
int n;
while (scanf("%d", &n) != EOF)
{
bo = 0;
Node1 root = NULL;
for (int i = 0; i < n; i ++)
{
scanf("%d", &tr);
insert(root, tr);
}
pre(root);
printf("\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  acm uva 二叉树