Cod sursa(job #1727874)

Utilizator SlevySlevoaca Stefan-Gabriel Slevy Data 11 iulie 2016 19:59:12
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.98 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream in("algsort.in");
ofstream out("algsort.out");

struct node{
    int info;
    int frecv;
    node *st;
    node *dr;
};

node *head;

void add_key(node* &p,int key)
{
    if(p==NULL)
    {
        p = new node;
        p->st = NULL;
        p->frecv = 1;
        p->dr = NULL;
        p->info = key;
    }
    else
    {
        if(p->info < key)
            add_key(p->dr,key);
        else
            if(p->info > key)
            add_key(p->st,key);
        else
            p->frecv++;
    }
}

int n;

void print_arb(node *p)
{
    if(p->st!=NULL)
        print_arb(p->st);
    for(int i=1;i<=p->frecv;i++)
    out<<p->info<<" ";
    if(p->dr!=NULL)
        print_arb(p->dr);
}

int main()
{
    in>>n;
    int x;
    for(int i=1;i<=n;i++)
    {
        in>>x;
        add_key(head,x);
    }
    print_arb(head);
    in.close();
    out.close();
    return 0;
}