Pagini recente » Istoria paginii runda/virtual-101/clasament | Cod sursa (job #556082) | Istoria paginii runda/wellcodesimulareclasa10-10martie | Cod sursa (job #323978) | Cod sursa (job #1727874)
#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;
}