Pagini recente » Cod sursa (job #2437221) | Cod sursa (job #1932160) | Cod sursa (job #2119480) | Cod sursa (job #429779) | Cod sursa (job #979965)
Cod sursa(job #979965)
#include <iostream>
#include <fstream>
using namespace std;
#define LeftSon(i) 2*i
#define RightSon(i) 2*i+1
#define Nmax 500005
struct nod
{
int val;
int nr;
} BST[Nmax];
int N;
ifstream f("algsort.in");
ofstream g("algsort.out");
void inserare( int nod, int key )
{
if ( BST[nod].val == key || BST[nod].nr == 0 )
BST[nod].val = key,
BST[nod].nr++;
else
if ( BST[nod].val > key )
inserare(LeftSon(nod),key);
else
inserare(RightSon(nod),key);
}
void print( int nod )
{
if ( BST[nod].nr > 0 )
{
print(LeftSon(nod));
while(BST[nod].nr > 0)
{
g << BST[nod].val << " ";
BST[nod].nr--;
}
print(RightSon(nod));
}
}
int main()
{
int n, a;
f >> n;
for ( int i = 1; i <= n; i++ )
f >> a,
inserare(1,a);
print(1);
return 0;
}