Explorați Cărți electronice
Categorii
Explorați Cărți audio
Categorii
Explorați Reviste
Categorii
Explorați Documente
Categorii
RAPORT
Lucrarea de laborator nr.4-5
la Structuri de date si algoritmi
A efectuat:
st. gr. TI-144
R. Mitu
A verificat:
dr., conf.univ., catedra IA
M. Kulev
Chiinu -2015
limbajul C.
Analiza datelor:
Cimpurile structurii hotel:
numele - tablou de 30 de caractere in care se va pastra denumirea fiecarui hotel;
stele - variabila de tip float in care se va pastra numarul de stele a hotelului;
locuri - variabila de tip integer in care se va pastra numarul de locuri a hotelului;
anul - variabila de tip integer in care se va pastra anul hotelului;
pretul - variabila de tip float in care se va pastra pretul ($) pentru o zi;
left - pointer de tip struct hotel ce contine adresa copilului sting;
right - pointer de tip struct hotel ce contine adresa copilului drept;
Cimpurile structurii elq:
adr - pointer de tip hotel ce contine adresa elementului inclus in coada;
next - pointer de tip struct eql ce contine adresa urmatorului el. din coada;
Cimpurile structurii els:
adr - pointer de tip hotel ce contine adresa elementului inclus in stiva;
prev - pointer de tip struct els ce contine adresa urmatorului el. din stiva;
Variabile globale:
root - pointer de tip hotel ce contine adresa radacinii arborelui.
first - pointer de tip elq ce contine adresa primului element din coada.
last - pointer de tip elq ce contine adresa ultimului element din coada.
top - pointer de tip els ce contine adresa primului element din stiva.
Prototipurile functiilor:
Functiile de prelucrare a arborelui binar folosind algorimti iterativi:
int inq(hotel *v) - functia pentru inserarea unui el. in coada:
v - pointer de tip hotel ce contine adresa el. inserat in coada;
hotel *delq(void) - functia pentru stergerea unui el. din coada;
int push(hotel *v) - functia pentru inserarea unui el. in stiva:
v - pointer de tip hotel ce contine adresa el. inserat in stiva;
hotel *pop(void) functia pentru stergerea unui el. din stiva;
int createl(void) - functia pentru crearea arborelui in latime;
int createa(void) - functia pentru crearea arborelui in adincime;
int showl(void) functia pentru afisarea arborelui la ecran in latime;
int showa(void) functia pentru afisarea arborelui la ecran in adincime;
int sizel(void) functia pentru determinarea marimii arborelui in latime;
int sizea(void) functia pentru determinarea marimii arborelui in adincime;
hotel *searchl(char *v) functia pentru cautarea unui hotel dupa denumire in lat.:
v pointer de tip char ce contine adresa variabilei ce contine numele hotelului;
hotel *searcha(char *v) functia pentru cautarea unui hotel dupa denumire in ad.:
v pointer de tip char ce contine adresa variabilei ce contine numele hotelului;
int freememl(void) functia pentru eliberarea memoriei in latime;
int freemema(void) functia pentru eliberarea memoriei in adincime;
int heightl(void) functia pentru determinarea inatimii arborelui in latime;
int heighta(void) functia pentru determinarea inatimii arborelui in adincime;
Functiile de prelucrare a arborelui binar folosind algorimti recursivi:
hotel* createRSD(void) functia pentru creara arborelui RSD;
hotel* createRDS(void) functia pentru creara arborelui RDS;
void showRSD(hotel *c) functia pentru afisarea arborelui la ecran RSD:
c pointer de tip hotel ce contine adresa el. de la care sa inceapa afisarea.
void showRDS(hotel *c) functia pentru afisarea arborelui la ecran RDS;
void showSRD(hotel *c) functia pentru afisarea arborelui la ecran SRD;
void showDRS(hotel *c) functia pentru afisarea arborelui la ecran DRS;
void showSDR(hotel *c) functia pentru afisarea arborelui la ecran SDR;
void showDSR(hotel *c) functia pentru afisarea arborelui la ecran DSR;
hotel* searchRSD(hotel *c,int v) f. Pentru cautarea unui hotel dupa an RSD:
c - pointer de tip hotel ce contine adresa el. de la care sa inceapa cautarea;
v variabila de tip interg,anul hotelului de cautat;
hotel* searchRDS(hotel *c,int v) f. Pentru cautarea unui hotel dupa an RDS;
int sizeRSD(hotel *c) f. pentru determinarea marimii arborelui RSD:
c pointer de tip hotel ce contine ad. el. de la care sa inceapa sa masoare arb.;
int sizeRDS(hotel *c) f. pentru determinarea marimii arborelui RDS:
int heightRSD(hotel *c) f. pentru determinarea inaltimii arborelui RSD:
c pointer de tip hotel ce contine ad. el. de la care sa inceapa det. inaltimii;
int heightRDS(hotel *c) f. pentru determinarea inaltimii arborelui RDS;
void freememSDR(hotel *c) f. pentru eliberarea memoriei SDR:
c pointer de tip hotel ce contine ad. el. de la care sa inceapa eliberarea mem.;
void freememDSR(hotel *c) f. pentru eliberarea memoriei DSR:
v=c->adr;
if(first==last)
first=last=NULL;
else first=c->next;
free(c);
return v;
}
//F. pentru inserarea in stiva
int push(hotel *v)
{
els *c;
c=(els*)malloc(sizeof(*c));
if(c==NULL)return 0;
c->adr=v;
c->prev=top;
top=c;
return 1;
}
//F. pentru eliminarea din stiva
hotel* pop(void)
{
els *c;
hotel *v;
c=top;
v=c->adr;
top=c->prev;
free(c);
return v;
}
//F. pentru crearea arborelui in latime
int createl(void)
{
hotel *p,*s;int f,l;
root=NULL;
first=last=NULL;
printf("Doriti sa creati un arbore?1/0");
scanf("%d",&f);
if(!f)return -1;
p=(hotel*)malloc(sizeof(*p));
if(p==NULL)return -2;
printf("Introduceti informatia necesara pentru radacina:\n");
printf("Nr. de ordine:");
scanf("%d",&p->nr);
printf("Numele: ");
scanf("%s",&p->numele);
if(s==NULL)return -6;
printf("Introduceti informatia necesara pentru copilul drept al nodului
%d:\n",p->nr);
printf("Nr. de ordine:");
scanf("%d",&s->nr);
printf("Numele: ");
scanf("%s",&s->numele);
printf("Nr. de stele: ");
scanf("%f",&s->stele);
printf("Nr. de locuri: ");
scanf("%d",&s->locuri);
printf("Anul: ");
scanf("%d",&s->anul);
printf("Pretul/zi($): ");
scanf("%d",&s->pretul);
p->right=s;
l=inq(s);
if(!l)return -7;
}
}
return 0;
}
//F. pentru crearea arborelui in adincime
int createa(void)
{
hotel *p,*s;int f,l;
root=NULL;
top=NULL;
printf("Doriti sa creati un arbore?1/0");
scanf("%d",&f);
if(!f)return -1;
p=(hotel*)malloc(sizeof(*p));
if(p==NULL)return -2;
printf("Introduceti informatia necesara pentru radacina:\n");
printf("Nr. de ordine:");
scanf("%d",&p->nr);
printf("Numele: ");
scanf("%s",&p->numele);
printf("Nr. de stele: ");
scanf("%f",&p->stele);
printf("Nr. de locuri: ");
scanf("%d",&p->locuri);
printf("Anul: ");
scanf("%d",&p->anul);
printf("Pretul/zi($): ");
scanf("%d",&p->pretul);
root=p;
l=push(p);
if(!l)return -3;
while(top)
{
p=pop();
printf("De creat copilul sting al nodului %d?(1/0)",p->nr);
scanf("%d",&f);
if(!f) p->left=NULL;
else
{
s=(hotel*)malloc(sizeof(*s));
if(s==NULL)return -4;
printf("Introduceti informatia necesara pentru copilul sting al nodului
%d:\n",p->nr);
printf("Nr. de ordine:");
scanf("%d",&s->nr);
printf("Numele: ");
scanf("%s",&s->numele);
printf("Nr. de stele: ");
scanf("%f",&s->stele);
printf("Nr. de locuri: ");
scanf("%d",&s->locuri);
printf("Anul: ");
scanf("%d",&s->anul);
printf("Pretul/zi($): ");
scanf("%d",&s->pretul);
p->left=s;
l=push(s);
if(!l)return -5;
}
printf("De creat copilul drept al nodului %d?(1/0)");
scanf("%d",&f);
if(!f) p->right=NULL;
else
{
s=(hotel*)malloc(sizeof(*s));
if(s==NULL)return -6;
printf("Introduceti informatia necesara pentru copilul drept al nodului
%d:\n",p->nr);
printf("Nr. de ordine:");
scanf("%d",&s->nr);
printf("Numele: ");
scanf("%s",&s->numele);
{
hotel *p,*s;int l;
top=NULL;
if(root==NULL)return -1;
p=root;
l=push(p);
if(!l)return -2;
while(top)
{
p=pop();
printf("****************************************\n\n");
printf("Datele hotelului:
%d\n",p->nr);
printf("Numele:
%s\n",p->numele);
printf("Nr. de stele:
%f\n",p->stele);
printf("Nr. de locuri:
%d\n",p->locuri);
printf("Anul:
%d\n",p->anul);
printf("Pretul:
%d\n",p->pretul);
s=p->left;
if(s){l=push(s);
if(!l)return -3;}
s=p->right;
if(s){l=push(s);
if(!l)return -4;}
}
return 0;
}
//F. pentru determinarea marimii arborelui,in latime
int sizel(void)
{
hotel *p,*s;int n=0,l;
first=last=NULL;
if(root==NULL)return -1;
p=root;
l=inq(p);
if(!l)return -2;
while(first)
{
p=delq();
n++;
s=p->left;
if(s){l=inq(s);if(!l)return -3;}
s=p->right;
if(s){l=inq(s);if(!l)return -4;}
}
return n;
}
//F. pentru determinarea marimii arborelui,in adincime
int sizea(void)
{
hotel *p,*s;int n=0,l;
top=NULL;
if(root==NULL)return -1;
p=root;
l=push(p);
if(!l)return -2;
while(top)
{
p=pop();
n++;
s=p->left;
if(s){l=push(s);if(!l)return -3;}
s=p->right;
if(s){l=push(s);if(!l)return -4;}
}
return n;
}
//F. pentru cautarea unui element dupa denumire,in latime
hotel *searchl(char *v)
{
hotel *p,*s;int l;
first=last=NULL;
if(root==NULL)return NULL;
p=root;
l=inq(p);
if(!l)return NULL;
while (first)
{
p=delq();
if(stricmp(p->numele,v)==0)return p;
s=p->left;
if(s){l=inq(s);if(!l)return NULL;}
s=p->right;
if(s){l=inq(s);if(!l)return NULL;}
}
return 0;
}
//F. pentru cautarea unui element dupa denumire,in adincime
hotel *searcha(char *v)
{
hotel *p,*s;int l;
top=NULL;
if(root==NULL)return NULL;
p=root;
l=push(p);
if(!l)return NULL;
while (top)
{
p=pop();
if(stricmp(p->numele,v)==0)return p;
s=p->left;
if(s){l=push(s);if(!l)return NULL;}
s=p->right;
if(s){l=push(s);if(!l)return NULL;}
}
return 0;
}
//F. pentru eliberarea memoriei,in latime
int freememl(void)
{
hotel *p,*s;int l;
first=last=NULL;
if(root==NULL)return -1 ;
p=root;
l=inq(p);
if(!l)return -2;
while(first)
{
p=delq();
s=p->left;
if(s){l=inq(s);if(!l)return -3;}
s=p->right;
if(s){l=inq(s);if(!l)return -4;}
free(p);
}
return 0;
}
//F. pentru eliberarea memoriei,in adincime
int freemema(void)
{
hotel *p,*s;int l;
top=NULL;
if(root==NULL)return -1 ;
p=root;
l=push(p);
if(!l)return -2;
while(top)
{
p=pop();
s=p->left;
if(s){l=push(s);if(!l)return -3;}
s=p->right;
if(s){l=push(s);if(!l)return -4;}
free(p);
}
return 0;}
//F. pentru determinarea inaltimii arborelui,in latime
int heightl(void){
hotel *p,*s;int l,r,m;
r=m=0;
first=last=NULL;
if(root==NULL)return -1;
p=root;
l=inq(p);
if(!l)return -2;
while(first) {
p=delq();
s=p->left;
if(s){l=inq(s);if(!l){return -3;}r++;}
s=p->right;
if(s){l=inq(s);if(!l){return -4;}m++;}}
if(r>m)return r;
else return m;}
//F. pentru determinarea inaltimii arborelui,in latime
int heighta(void){
hotel *p,*s;int l,r,m;
r=m=0;
top=NULL;
if(root==NULL)return -1;
p=root;
l=push(p);
if(!l)return -2;
while(top)
{p=pop();
s=p->left;
if(s){l=push(s);if(!l){return -3;}r++;}
s=p->right;
if(s){l=push(s);if(!l){return -4;}m++;}}
if(r>m)return r;
else return m;}
//LAB5
hotel* createRSD(void){
hotel *c;
int f;
printf("Doriti sa creati un arbore?1/0");
scanf("%d",&f);
if(!f)return NULL;
c=(hotel*)malloc(sizeof(*c));
if(c==NULL){printf("Memoria nu a fost alocata"); exit(1);}
printf("Introduceti informatia necesara despre hotel:\n");
printf("Nr. de ordine:");
scanf("%d",&c->nr);
printf("Numele: ");
scanf("%s",&c->numele);
printf("Nr. de stele: ");
scanf("%f",&c->stele);
printf("Nr. de locuri: ");
scanf("%d",&c->locuri);
printf("Anul: ");
scanf("%d",&c->anul);
printf("Pretul/zi($): ");
scanf("%d",&c->pretul);
printf("Copilul sting al nodului %d",c->nr);
c->left=createRSD();
printf("Copilul drept al nodului %d",c->nr);
c->right=createRSD();
return c;
}
hotel* createRDS(void){
hotel *c;
int f;
printf("Doriti sa creati un arbore?1/0");
scanf("%d",&f);
if(!f)return NULL;
c=(hotel*)malloc(sizeof(*c));
if(c==NULL){printf("Memoria nu a fost alocata"); exit(1);}
printf("Introduceti informatia necesara despre hotel:\n");
printf("Nr. de ordine:");
scanf("%d",&c->nr);
printf("Numele: ");
scanf("%s",&c->numele);
printf("Nr. de stele: ");
scanf("%f",&c->stele);
printf("Nr. de locuri: ");
scanf("%d",&c->locuri);
printf("Anul: ");
scanf("%d",&c->anul);
printf("Pretul/zi($): ");
scanf("%d",&c->pretul);
printf("Copilul drept al nodului %d",c->nr);
c->right=createRDS();
printf("Copilul sting al nodului %d",c->nr);
c->left=createRDS();
return c;}
void showRSD(hotel *c){
if(c==NULL)return;
printf("Datele hotelului:
%d\n",c->nr);
printf("Numele:
%s\n",c->numele);
printf("Nr. de stele:
%f\n",c->stele);
printf("Nr. de locuri:
%d\n",c->locuri);
printf("Anul:
%d\n",c->anul);
printf("Pretul:
%d\n",c->pretul);
showRSD(c->left);
showRSD(c->right);}
void showRDS(hotel *c){
if(c==NULL)return;
printf("Datele hotelului:
%d\n",c->nr);
printf("Numele:
%s\n",c->numele);
printf("Nr. de stele:
%f\n",c->stele);
printf("Nr. de locuri:
%d\n",c->locuri);
printf("Anul:
%d\n",c->anul);
printf("Pretul:
%d\n",c->pretul);
showRSD(c->right);
showRSD(c->left);}
void showSRD(hotel *c){
if(c==NULL)return;
showSRD(c->left);
printf("Datele hotelului:
%d\n",c->nr);
printf("Numele:
%s\n",c->numele);
printf("Nr. de stele:
%f\n",c->stele);
printf("Nr. de locuri:
%d\n",c->locuri);
printf("Anul:
%d\n",c->anul);
printf("Pretul:
%d\n",c->pretul);
showSRD(c->right);}
void showDRS(hotel *c){
if(c==NULL)return;
showDRS(c->right);
printf("Datele hotelului:
%d\n",c->nr);
printf("Numele:
%s\n",c->numele);
printf("Nr. de stele:
%f\n",c->stele);
printf("Nr. de locuri:
%d\n",c->locuri);
printf("Anul:
%d\n",c->anul);
printf("Pretul:
%d\n",c->pretul);
showDRS(c->left);}
void showSDR(hotel *c){
if(c==NULL)return;
showSDR(c->left);
showSDR(c->right);
printf("Datele hotelului:
%d\n",c->nr);
printf("Numele:
%s\n",c->numele);
printf("Nr. de stele:
%f\n",c->stele);
printf("Nr. de locuri:
%d\n",c->locuri);
printf("Anul:
%d\n",c->anul);
printf("Pretul:
%d\n",c->pretul);}
void showDSR(hotel *c)
{
if(c==NULL)return;
showDSR(c->right);
showDSR(c->left);
printf("Datele hotelului:
%d\n",c->nr);
printf("Numele:
%s\n",c->numele);
printf("Nr. de stele:
%f\n",c->stele);
printf("Nr. de locuri:
%d\n",c->locuri);
printf("Anul:
%d\n",c->anul);
printf("Pretul:
%d\n",c->pretul);}
hotel* searchRSD(hotel *c,int v){
if(c==NULL)return c;
if(c->anul==v)return c;
c=searchRSD(c->left,v);
c=searchRSD(c->right,v);
return c;}
hotel* searchRDS(hotel *c,int v){
if(c==NULL)return c;
if(c->anul==v)return c;
c=searchRDS(c->right,v);
c=searchRDS(c->left,v);
return c;}
int sizeRSD(hotel *c){
int n;
if(c==NULL)return 0;
n=sizeRSD(c->left)+1;
n=sizeRSD(c->right)+1;
return n;}
int sizeRDS(hotel *c){
int n;
if(c==NULL)return 0;
n=sizeRDS(c->right)+1;
n=sizeRDS(c->left)+1;
return n;}
int heightRSD(hotel *c){
int l,r;
if(c==NULL)return -1;
l=heightRSD(c->left)+1;
r=heightRSD(c->right)+1;
if(r>l)return r; else return l;}
int heightRDS(hotel *c){
int l,r;
if(c==NULL)return -1;
l=heightRDS(c->right)+1;
r=heightRDS(c->left)+1;
if(r>l)return r; else return l;}
void freememSDR(hotel *c){
if(c==NULL)return;
freememSDR(c->left);
freememSDR(c->right);
free(c);
return;}
void freememDSR(hotel *c){
if(c==NULL)return;
freememDSR(c->right);
freememDSR(c->left);
free(c);
return;}
main.c
#include "functii.c"
//Main:
int main(){
hotel *p,*k;
int com,com1,com2,m,s,n;
char v[30];
printf("\tLaboratorul 4,5\n");
printf("\n1.Laboratorul 4");
printf("\n2.Laboratorul 5");
printf("\n\n0.Exit");
printf("\n\n\tAlegeti optiunea>>");
scanf("%d",&com);
switch(com)
{
case 0:
if(root){
freememl();
}
exit(0);
break;
case 1:
in:system("cls"); printf("\t\tMENU");
printf("\n\n1.Crearea arborelui in latime");
printf("\n2.Crearea arborelui in adincime");
printf("\n3.Afisarea arborelui in latime");
printf("\n4.Afisarea arborelui in adincime");
printf("\n5.Cautarea unui hotel in latime");
printf("\n6.Cautarea unui hotel in adincime");
printf("\n7.Inaltimea arborelui in latime");
printf("\n8.Inaltimea arborelui in adincime");
printf("\n9.Eliberarea memoriei in latime");
printf("\n10.Eliberarea memoriei in adincime");
printf("\n0.Exit");
printf("\n\n\tAlegeti optiunea>>");
scanf("%d",&com1);
switch(com1)
{
case 0:
if(root){
freememl();
}
exit(0);
break;
case 1:
if(!createl())
{
system("cls");
printf("Arborele a fost creat cu succes");
getch();
system("cls");
goto in;
}
else
{
printf("Eroare la crearea arborelui");
getch();
exit(0);
}
break;
case 2:
if(!createa())
{
system("cls");
scanf("%s",&v);
p=searchl(v);
system("cls");
printf("Datele hotelului:
%d\n",p->nr);
printf("Numele:
%s\n",p->numele);
printf("Nr. de stele:
%f\n",p->stele);
printf("Nr. de locuri:
%d\n",p->locuri);
printf("Anul:
%d\n",p->anul);
printf("Pretul:
%d\n",p->pretul);
getch();
goto in;
break;
case 6:
system("cls");
printf("Introduceti denumirea hotelului:");
scanf("%s",&v);
p=searcha(v);
system("cls");
printf("Datele hotelului:
%d\n",p->nr);
printf("Numele:
%s\n",p->numele);
printf("Nr. de stele:
%f\n",p->stele);
printf("Nr. de locuri:
%d\n",p->locuri);
printf("Anul:
%d\n",p->anul);
printf("Pretul:
%d\n",p->pretul);
getch();
goto in;
break;
case 7:
system("cls");
m=heightl();
printf("Arborele dat are inaltimea:%d",m);
getch();
goto in;
break;
case 8:
system("cls");
m=heighta();
printf("Arborele dat are inaltimea:%d",m);
getch();
goto in;
break;
case 9:
if(!freememl())
{
printf("Eliberarea memoriei s-a efectuat cu succes");
getch();
goto in;
}
else
{
printf("Eroare");
getch();
exit(0);
}
break;
case 10:
if(!freemema())
{
printf("Eliberarea memoriei s-a efectuat cu succes");
getch();
goto in;
}
else
{
printf("Eroare");
getch();
exit(0);
}
break;
}
case 2:
an:system("cls"); printf("\t\tMENU");
printf("\n\n1.Crearea arborelui RSD");
printf("\n2.Crearea arborelui RDS");
printf("\n3.Afisarea arborelui RSD");
printf("\n4.Afisarea arborelui RDS");
printf("\n5.Afisarea arborelui SRD");
printf("\n6.Afisarea arborelui DRS");
printf("\n7.Afisarea arborelui SDR");
printf("\n8.Afisarea arborelui DSR");
printf("\n9.Cautarea unui hotel RSD");
printf("\n10.Cautarea unui hotel RDS");
printf("\n11.Marimea arborelui RSD");
printf("\n12.Marimea arborelui RDS");
printf("\n13.Inaltimea arborelui RSD");
printf("\n14.Inaltimea arborelui RDS");
printf("\n15.Eliberarea memoriei SDR");
printf("\n16.Eliberarea memoriei DSR");
printf("\n0.Exit");
printf("\n\n\tAlegeti optiunea>>");
scanf("%d",&com2);
switch(com2)
{
case 1:
root=createRSD();
goto an;
getch();
break;
case 2:
root=createRDS();
getch();
goto an;
break;
case 3:
system("cls");
showRSD(root);
getch();
goto an;
break;
case 4:
system("cls");
showRDS(root);
getch();
goto an;
break;
case 5:
system("cls");
showSRD(root);
getch();
goto an;
break;
case 6:
system("cls");
showDRS(root);
getch();
goto an;
break;
case 7:
system("cls");
showSDR(root);
getch();
goto an;
break;
case 8:
system("cls");
showDSR(root);
getch();
goto an;
break;
case 9:
system("cls");
printf("Introduceti anul pentru cautare:");
scanf("%d",&s);
k=searchRSD(root,s);
printf("Datele hotelului:
%d\n",k->nr);
printf("Numele:
%s\n",k->numele);
printf("Nr. de stele:
%f\n",k->stele);
printf("Nr. de locuri:
%d\n",k->locuri);
printf("Anul:
%d\n",k->anul);
printf("Pretul:
%d\n",k->pretul);
getch();
goto an;
break;
case 10:
system("cls");
printf("Introduceti anul pentru cautare:");
scanf("%d",&s);
k=searchRDS(root,s);
printf("Datele hotelului:
%d\n",k->nr);
printf("Numele:
%s\n",k->numele);
printf("Nr. de stele:
%f\n",k->stele);
printf("Nr. de locuri:
%d\n",k->locuri);
printf("Anul:
%d\n",k->anul);
printf("Pretul:
%d\n",k->pretul);
getch();
goto an;
break;
case 11:
system("cls");
n=sizeRSD(root);
printf("Marimea arborelui dat este:%d",n);
getch();
goto an;
break;
case 12:
system("cls");
n=sizeRDS(root);
printf("Marimea arborelui dat este:%d",n);
getch();
goto an;
break;
case 13:
system("cls");
n=heightRSD(root);
printf("Inaltimea arborelui dat este:%d",n);
getch();
goto an;
break;
case 14:
system("cls");
n=heightRDS(root);
printf("Inaltimea arborelui dat este:%d",n);
getch();
goto an;
break;
case 15:
system("cls");
freememSDR(root);
printf("Memoria s-a eliberat cu succes");
getch();
goto an;
break;
case 16:
system("cls");
freememDSR(root);
printf("Memoria s-a eliberat cu succes");
getch();
goto an;
break;
}
}
return 0;}
Datele introduse si rezultate obtinute: