Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // main.c
- // AA
- //
- // Created by Miruna on 22/10/16.
- // Copyright © 2016 Miruna. All rights reserved.
- //
- #include <stdio.h>
- #include <stdlib.h>
- int k=0, chei[30], parinte[30];
- void adaugare_radacina(int ch)
- {
- chei[k]=ch;
- parinte[k]=-1;
- k++;
- }
- void inserare_cheie(int ch, int par)
- {
- chei[k]=ch;
- parinte[k]=par;
- k++;
- }
- void afisare()
- {
- int i;
- printf("\n\nindex |");
- for(i=0;i<k;i++)
- printf("\t%d ",i);
- printf("\nchei |");
- for(i=0;i<k;i++)
- printf("\t%d ",chei[i]);
- printf("\nparinte |");
- for(i=0;i<k;i++)
- printf("\t%d ",parinte[i]);
- printf("\n\n");
- }
- int cauta_cheie(int ch)
- {
- int i,ok=1;
- for(i=0; i<k && ok ;i++)
- if(chei[i]==ch)
- ok=0;
- return ok;
- }
- void sterge_cheie(int ch)
- {
- int i,j,ok=1;
- for(i=0;i<k && ok;i++)
- if(chei[i]==ch)
- ok=0;
- if(ok==0)
- {
- for(j=i-1;j<k;j++)
- {
- chei[j]=chei[j+1];
- parinte[j]=parinte[j+1];
- }
- k--;
- }
- else
- printf("\n\n\tCheia dorita nu a fost gasita!\n");
- }
- int inaltime_arbore()
- {
- int i, nr=1;
- for(i=1;i<k;i++)
- if(parinte[i-1]!=parinte[i])
- nr++;
- return nr;
- }
- int grad_ardore()
- {
- int i,nr,max=1;
- for(i=1;i<k;i++)
- {
- nr=1;
- while(parinte[i]==parinte[i+1] && i<k-1)
- {
- nr++;
- i++;
- }
- if(nr>max)
- max=nr;
- }
- return max;
- }
- int preordine (int i)
- {
- int j;
- if(i<k)
- {
- printf("\t%d",chei[i]);
- for(j=i+1;j<k-1;j++)
- if(parinte[j]==parinte[j+1])
- preordine(i++);
- preordine(i+2);
- }
- return 0;
- }
- int main(int argc, const char * argv[]) {
- int opt, ch, par;
- do{
- printf("\n\t0.Iesire\n\t1.Inserare radacina\n\t2.Inserare cheie noua\n\t3.Cauta cheie\n\t4.Sterge cheie\n\t5.Parcurgeri\n\t6.Inaltimea arborelui\n\t7.Gradul arborelui\n\t8.Cel mai din stanga frate\n\t9.Cel mai din dreapta frate\n\t10.Numar de frati\n\t11.Afisare\n\n\n\t");
- scanf("%d",&opt);
- switch (opt) {
- case 0:
- break;
- case 1:
- system("clear");
- printf("\n\tDati radacina: ");
- scanf("%d",&ch);
- adaugare_radacina(ch);
- break;
- case 2:
- system("clear");
- printf("\n\tDati cheia: ");
- scanf("%d",&ch);
- printf("\n\tDati parintele: ");
- scanf("%d",&par);
- inserare_cheie(ch,par);
- break;
- case 3:
- system("clear");
- printf("\n\tDati cheia cautata: ");
- scanf("%d",&ch);
- if(cauta_cheie(ch)==0)
- printf("\n\tCheia exista!");
- else
- printf("\n\tCheia nu exista!");
- break;
- case 4:
- system("clear");
- printf("Dati cheia care doriti sa fie stearsa: ");
- scanf("%d",&ch);
- sterge_cheie(ch);
- break;
- case 5:
- system("clear");
- preordine(0);
- break;
- case 6:
- system("clear");
- printf("Inaltimea este: %d",inaltime_arbore());
- break;
- case 7:
- system("clear");
- printf("Gradul este: %d",grad_ardore());
- break;
- case 11:
- system("clear");
- afisare();
- break;
- default: printf("Nu ati introdus o optiune valida!\n");
- break;
- }
- }while(opt!=0);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement