Documente Academic
Documente Profesional
Documente Cultură
h>
#include<assert.h>
#include<conio.h>
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
class telefon
{
public:
char *adresa;
char *familia;
char *data_instalarii;
long nr_telefon;
telefon();
telefon *sting;
telefon *drept;
};
telefon::telefon()
{
adresa =new char[20];
strcpy(adresa," ");
familia =new char[10];
strcpy(familia," ");
data_instalarii =new char[20];
strcpy(data_instalarii," ");
nr_telefon=0 ;
sting=drept=0;
}
class Tree
{
private:
telefon*tnod;
void inordine(telefon*);
void postordine(telefon*);
void preordine(telefon*);
public:
void Tree::aratainordine()
{
inordine(tnod);
}
/*functia ce va fi chemata in functia main pentru a afisa
rezultatul
functiei preordine*/
void Tree::aratapreordine()
{
preordine(tnod);
}
/*functia ce va fi chemata in functia main pentru a afisa
rezultatul
functiei postordine*/
void Tree::aratapostordine()
{
postordine(tnod);
}
/*Descrim functia insnod care va introduce nodurile pe care vrem sa
le
adaugam in arbore. Initial daca arborele e vid, nod introdus va fi
radacina arborelui. In cazul ca radacina exista atunci nodul se va
introduce ca nod sting sau drept in dependenta daca nodurile date
nu
sunt ocupata si de ordinea alfabetica si dimensiunea sirului
numelui de familie, daca frunzele sunt ocupate atunci se
trece ca radacina la frunza stinga deja existenta apoi la dreapta.
*/
cin>>k;
switch(k)
{
case 1:
{
ptr.adaugare();
break;
}
case 2:
{
ptr.aratainordine();
break;
}
case 3:
{
ptr.aratapreordine();
break;
}
case 4:
{
ptr.aratapostordine();
break;
}
case 5:
{
char *d;
d=new char(10);
ptr.cauta(d);
delete d;
break;
}
}
}
while (k!=6);
}