Sei sulla pagina 1di 2

#include <stdio.

h>
#include <stdlib.h>

struct nodoAlberoBinario {
int info;
struct nodoAlberoBinario *left;
struct nodoAlberoBinario *right;
};
typedef struct nodoAlberoBinario NodoAlbero;
typedef NodoAlbero *AlberoBinario;

/* DICHIARAZIONE DELLE FUNZIONI/PROCEDURE DA DEFINIRE */


void insert(AlberoBinario *radice, int val);
int find(AlberoBinario radice, int k);

/* PROCEDURA PER RILASCIARE LA MEMORIA */


void free_tree(AlberoBinario radice)
{
if (radice != NULL) {
free_tree(radice->left);
free_tree(radice->right);
free(radice);
}
}

/* MAIN */
int main(void)
{
int i, n, k, num;
AlberoBinario radice = NULL;
scanf("%d", &n);
for (i = 0; i < n; ++i) {
scanf("%d", &num);
insert(&radice, num);
}
scanf("%d",&k);
if(find(radice,k) == 1) printf("yes\n");
else printf("no\n");
free_tree(radice);
return 0;
}

/*FUNZIONI/PROCEDURE*/

void insert(AlberoBinario *radice, int val) {


if((*radice)!=NULL){
if (((*radice)->info)>val) insert(&((*radice)->left),val);
if (((*radice)->info)<val) insert(&((*radice)->right),val);
}
else {
AlberoBinario aux;
aux=malloc(sizeof(NodoAlbero));
aux->info=val;
aux->left=NULL;
aux->right=NULL;
*radice=aux;
}
}

int find(AlberoBinario radice, int k) {


if(radice!=NULL) {
if((radice->info)==k) return 1;
else if ((radice->info)>k) return find(radice->left, k);
else return find(radice->right, k);
}
else return 0;
}

Potrebbero piacerti anche

  • Es 3
    Es 3
    Documento5 pagine
    Es 3
    lorenzo tinfena
    Nessuna valutazione finora
  • Esercizi 0
    Esercizi 0
    Documento1 pagina
    Esercizi 0
    lorenzo tinfena
    Nessuna valutazione finora
  • Es 2
    Es 2
    Documento6 pagine
    Es 2
    lorenzo tinfena
    Nessuna valutazione finora
  • Es 4
    Es 4
    Documento8 pagine
    Es 4
    lorenzo tinfena
    Nessuna valutazione finora
  • Matlab Aceto
    Matlab Aceto
    Documento73 pagine
    Matlab Aceto
    lorenzo tinfena
    Nessuna valutazione finora
  • Schur
    Schur
    Documento7 pagine
    Schur
    lorenzo tinfena
    Nessuna valutazione finora
  • Zeri
    Zeri
    Documento53 pagine
    Zeri
    lorenzo tinfena
    Nessuna valutazione finora
  • Trasf Discreta Fournier
    Trasf Discreta Fournier
    Documento15 pagine
    Trasf Discreta Fournier
    lorenzo tinfena
    Nessuna valutazione finora
  • Norme
    Norme
    Documento16 pagine
    Norme
    lorenzo tinfena
    Nessuna valutazione finora
  • Matrici Elementari
    Matrici Elementari
    Documento9 pagine
    Matrici Elementari
    lorenzo tinfena
    Nessuna valutazione finora
  • Icompitino 2015
    Icompitino 2015
    Documento2 pagine
    Icompitino 2015
    lorenzo tinfena
    Nessuna valutazione finora
  • Icompitino 2014
    Icompitino 2014
    Documento2 pagine
    Icompitino 2014
    lorenzo tinfena
    Nessuna valutazione finora
  • SoluzioniCompito 5lug2021
    SoluzioniCompito 5lug2021
    Documento12 pagine
    SoluzioniCompito 5lug2021
    lorenzo tinfena
    Nessuna valutazione finora
  • Compito 25gen2021
    Compito 25gen2021
    Documento1 pagina
    Compito 25gen2021
    lorenzo tinfena
    Nessuna valutazione finora
  • App Unti
    App Unti
    Documento3 pagine
    App Unti
    lorenzo tinfena
    Nessuna valutazione finora
  • Icompitino 2009
    Icompitino 2009
    Documento2 pagine
    Icompitino 2009
    lorenzo tinfena
    Nessuna valutazione finora
  • Scheda Drugo
    Scheda Drugo
    Documento3 pagine
    Scheda Drugo
    lorenzo tinfena
    Nessuna valutazione finora
  • Compito 5lug2021
    Compito 5lug2021
    Documento1 pagina
    Compito 5lug2021
    lorenzo tinfena
    Nessuna valutazione finora
  • MC Callister
    MC Callister
    Documento2 pagine
    MC Callister
    lorenzo tinfena
    Nessuna valutazione finora
  • Compitino 8gen2021
    Compitino 8gen2021
    Documento1 pagina
    Compitino 8gen2021
    lorenzo tinfena
    Nessuna valutazione finora