Pagini recente » Cod sursa (job #2206011) | Cod sursa (job #3195911) | Cod sursa (job #2787903) | Cod sursa (job #700127) | Cod sursa (job #470627)
Cod sursa(job #470627)
/*
* Algsort
* BST = Binary Search Tree
* @author: Mircea Dima
*/
#include <cstdio>
#define dim 8192
char ax[dim];
int pz;
inline void cit (int &x)
{
x = 0;
while (ax[pz] < '0' || ax[pz] > '9')
if (++pz == dim)
fread (ax, 1, dim, stdin), pz = 0;
while (ax[pz] >= '0' && ax[pz] <= '9')
{
x = x * 10 + ax[pz] - '0';
if (++pz == dim)
fread (ax, 1, dim, stdin), pz = 0;
}
}
struct nod
{
int key;
nod *left, *right;
};
typedef nod* tree;
tree R, nil;
void init ()
{
nil = new nod;
nil->left = nil->right = 0;
nil->key = 0;
R = nil;
}
inline void insert (tree &n, int v)
{
if (n == nil)
{
n = new nod;
n->left = n->right = nil;
n->key = v;
return;
}
if (v < n->key)
insert (n->left, v);
else
insert (n->right, v);
}
inline void ino (tree n)
{
if (n == nil) return;
ino (n->left);
printf ("%d ", n->key);
ino (n->right);
}
int main ()
{
freopen ("algsort.in", "r", stdin);
freopen ("algsort.out", "w", stdout);
init ();
int n;
cit (n);
//scanf ("%d", &n);
int v;
for (int i = 1; i <= n; ++i)
{
// scanf ("%d", &v);
cit (v);
insert (R, v);
}
ino (R);
printf ("\n");
return 0;
}