Pagini recente » Cod sursa (job #2882333) | Cod sursa (job #2431538) | Cod sursa (job #501360) | Cod sursa (job #1802105) | Cod sursa (job #978572)
Cod sursa(job #978572)
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <algorithm>
using namespace std;
struct btreenode
{
btreenode *leftchild ;
int data;
short int nr;
btreenode *rightchild ;
} ;
void adauga ( btreenode *&, int ) ;
void inorder ( btreenode * ) ;
int *v = new int[500002];
ofstream g("algsort.out");
int main( )
{
btreenode *bt = NULL;
ifstream f("algsort.in");
int n, a;
f >> n;
for ( int i = 0; i < n; i++ )
f >> v[i];
random_shuffle ( v, v + n - 1 );
random_shuffle ( v, v + n - 1 );
for ( int i = 0; i < n; i++ )
adauga(bt,v[i]);
inorder(bt);
}
void adauga ( btreenode *&sr, int num )
{
if ( sr == NULL )
{
sr = new btreenode;
sr->leftchild = NULL ;
sr->data = num ;
sr->nr = 1;
sr->rightchild = NULL ;
}
else
{
if ( num == sr->data )
sr->nr++;
else
if ( num < sr->data )
adauga ( sr->leftchild, num ) ;
else
adauga ( sr->rightchild, num ) ;
}
}
void inorder ( btreenode *sr )
{
if ( sr != NULL )
{
inorder ( sr -> leftchild ) ;
while( sr->nr > 0 )
{
g << sr -> data << " ";
sr->nr--;
}
inorder ( sr -> rightchild ) ;
}
}