Pagini recente » Cod sursa (job #1874633) | Cod sursa (job #3041832) | Cod sursa (job #2715048) | Cod sursa (job #2281121) | Cod sursa (job #1845120)
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
struct vertex{
int value;
int c;
struct vertex *left, *right;
};
typedef struct vertex *Tree;
Tree T;
void insertInTree(Tree &r, int x){
Tree p = new vertex, q = r;
p->value = x;
p->c = 1;
p->left = p->right = '\0'; //'\0' == NULL
if(!r){
r = p;
return;
}
while(1){
if(q -> value ==x){
q->c += 1;
delete p;
return;
}
if(q ->value > x){
if(q->left) q = q->left;
else{
q->left = p;
return;
}
} else{
if(q->right) q = q->right;
else{
q->right = p;
return;
}
}
}
}
//int k;
void inorder(Tree r){
if(r){
/*if(k==1){
fout<<r->value;
return;
}*/
inorder(r->left);
while(r->c /*and k!=1*/){
fout<<r->value<<' ';
r->c -= 1;
}
inorder(r->right);
}
}
int main()
{
int M;
fin>>M;//>>k;
for(int x, i=0; i<M; ++i){
fin>>x;
insertInTree(T, x);
}
inorder(T);
fin.close();
fout.close();
return 0;
}