Cod sursa(job #1071075)

Utilizator dan.ghitaDan Ghita dan.ghita Data 2 ianuarie 2014 15:42:11
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 1.27 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int n, a;
struct nod{
int val;
nod *dr, *st;
    nod(){
        dr = NULL; st = NULL;
    }
} *rad;

void add(nod* &r, int a){
if(!r)
    r = new nod(),
    r->val = a;
else
    if(a < r->val) add(r->st, a);
    else add(r->dr, a);
}

void read(){
f>>n;
for(int i=0; i<n; ++i)
    f>>a, add(rad, a);
}

void srd(nod* r)
{
    if(r)
        srd(r->st),
        g<<r->val<<' ',
        srd(r->dr);
}

void rsd(nod *r)
{
    if(r)
        cout<<r->val<<" ",
        rsd(r->st),
        rsd(r->dr);
}

void sdr(nod *r){
if(r)
    sdr(r->st),
    sdr(r->dr),
    cout<<r->val<<" ";
}

int search_abc(nod *r, int a){
    if(!r) return 0;
    else
        if(r->val == a){
            return 1;
        }
        else
            if(a < r->val)
                return search_abc(r->st, a);
            else
                return search_abc(r->dr, a);
}


int main()
{
    read();
//    cout<<"SRD: ";
    srd(rad);
//    cout<<"\nRSD: ";
//    rsd(rad);
//    cout<<"\nSDR: ";
//    sdr(rad);
//    cout<<"\nCe vrei sa cauti: ";
//    cin>>a;
//    cout<<(search_abc(rad, a)?"Este\n":"Nu este\n");

    return 0;
}