Sunteți pe pagina 1din 2

#include<stdio.

h>
void insereaza_radacina(int *t, int *c, int *n)
{
int cheie;
(*n)++;
printf("Introduceti cheia radacinii\n");
scanf("%d",&cheie);
c[1] = cheie;
t[1] = 0;
}
void insereaza_cheie(int *t, int *c, int *n)
{
int cn, ct, i;
(*n)++;
printf("Introduceti cheia noului nod\n",&cn);
scanf("%d",&cn);
printf("Introduceti indexul tatalui\n",&ct);
scanf("%d",&ct);
c[*n] = cn;
t[*n] = ct;
}
void cauta_cheie(int *t, int *c, int *n)
{
int i, cheie, este=0;
printf("Cheia cautata =");
scanf("%d", &cheie);
for (i = 1; i <= *n; i++)
if (c[i] == cheie)
{
este=1;
printf("Cheia %d cautata are indexul %d\n", cheie, i);
}
if(!este)
printf("Cheia %d nu exista !!!\n", cheie);
}
void sterge_cheie(int *t, int *c, int *n)
{
int i, cheie, este=0, poz;
printf("Cheia cautata =");
scanf("%d", &cheie);
for (i = 1; i <= *n; i++)
if (c[i] == cheie)
{
este = 1;
poz = i;
}
if(este)
{
t[poz] = 0;
c[poz] = 0;
}
(*n)--;
}
int main()

{
int t[21], c[21], n=0, i, opt;
for(i=1;i<=20;i++)
{
t[i]=0;
c[i]=0;
}
printf("Acest program va gestiona un copac oarecare.\n");
do
{
printf("\n");
printf("0. Da foc la copac.\n");
printf("1. Planteaza radacina.\n");
printf("2. Creste o frunza.\n");
printf("3. Cauta un nod.\n");
printf("4. Arde o frunza.\n");
printf("Optiunea dumneavoastra este = ");
scanf("%d", &opt);
switch (opt)
{
default:
printf("Optiunea dumneavoastra nu exista, va rugam incer
cati mai tarziu !!!\n");
break;
case 1:
insereaza_radacina(t,c,&n);
break;
case 2:
insereaza_cheie(t,c,&n);
break;
case 3:
cauta_cheie(t,c,&n);
break;
case 4:
sterge_cheie(t,c,&n);
break;
}
}
while(opt!=0);
printf("cheie|index\n");
for(i=1;i<=20;i++)
printf("%5d %5d\n",c[i],t[i]);
return 0;
}

S-ar putea să vă placă și