Cod sursa(job #781277)

Utilizator oana_popfmi - pop oana oana_pop Data 24 august 2012 01:20:22
Problema Sortare prin comparare Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 1.47 kb
#include <fstream>
#include<cstdlib>
#define NMAX 500001
using namespace std;

ifstream f("algsort.in");
ofstream g("algsort.out");
int n;
struct Node
{
       Node* left;
       Node* right;
       int data;
} ;
Node *root;

int v[NMAX];

void insert(int d)
{
     Node* t=new Node();
     Node* parent;
     t->data=d;
     t->left=NULL;
     t->right=NULL;
     if(root==NULL)
                      root=t;
     else
     {
         Node* current;
         current=root;
         while(current)
         {
                       parent=current;
                       if(t->data < current->data) current=current->left;
                       else current=current->right;
         } 
         if(t->data < parent->data) 
                       parent->left=t;
         else 
                       parent->right=t;
         
     }
     
}

void inordine(Node* p)
{
     if(p!=NULL)
     {
                if(p->left) inordine(p->left);
                g<<p->data<<" ";
                if(p->right) inordine(p->right);
     }
     else return;
}

int main()
{
    int k,a,b,aux;
    f>>n;
    for(int i= 1; i<=n; i++)
    {
          f>>v[i];
          //insert(k);  
    }
    for(int i=1; i<=n; i++)
    {
            a=rand()%n+1;
            b=rand()%n+1;
            aux=v[a];
            v[a]=v[b];
            v[b]=aux;
            
    }
    for(int i=1; i<=n; i++)
    insert(v[i]);
    inordine(root);
    return 0;
}