|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2007
Messaggi: 381
|
[C] Semplici Esercizi Alberi Binari
Qualcuno mi spiega come funziona questa semplice funzione e come si inizializza un albero binario nel main, cioè come si inseriscono gli elementi.
Grazie Codice HTML:
#include <stdio.h> #include <stdlib.h> struct tree { int dato; struct tree *sx; struct tree *dx; }; typedef struct tree tree; int Ricerca(tree *t, int k) { //PRE LA FUNZIONE PRENDE IN INGRESSO UN ALBERO BINARIO t DI INTERI E UN...... //INTERO K DA CERCARE NEI NODI DELL'ALBERO //POST LA FUNZIONE RESTITUISCE 1 SE K E' CONTENUTO IN ALMENO UN NODO,......... //0 ALTRIMENTI. SE L'ALBERO E' VUOTO LA FUNZIONE RESTITUISCE 0 if(Is_Empty(t)==1){return 0;} return t->dato == k || ricerca(t->sx, k); || ricerca(t->dx, k);} |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
E' scritta male...questa dovrebbe essere così (non ci vuole il ; dopo il primo ricerca e ricerca deve essere maiuscolo):
Codice:
return t->dato == k || Ricerca(t->sx, k) || Ricerca(t->dx, k); } |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2007
Messaggi: 381
|
in teoria dovrebbe essere, se t->dato è uguale a k ritorna 1, altrimenti cerca nel sottoalbero destro o sinistro. ma non si dovrebbe cercare in entrambi i sotto alberi? cioè chi è che decide in quale sottoalbero cercare?
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Infatti si cerca nei sottoalberi. Quegli OR vengono valutati a partire da sinistra verso destra. Se il primo torna 1 allora gli altri non vengono valutati.
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:35.



















