|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Apr 2007
Messaggi: 381
|
[C] Alberi Binari Funzioni
Qualcuno mi dice se ci sono errori in queste funzioni "base" per gli alberi binari?
Sembrano perfette, visto che ho preso spunto dal libro, ma di da molti errori quando le uso nei programmi Codice HTML:
#include <stdio.h> #include <stdlib.h> struct tree { int dato; struct tree *sx, *dx; }; typedef struct tree tree; int Is_Empty(tree Radice) { if(Radice==NULL){return 1;} return 0; } tree Albero_Vuoto(void) { return NULL; } int Valore_Etichetta(tree Radice) { if(Radice!=NULL){return Radice->dato;} } tree Sinistro(tree Radice) { if(Radice!=NULL){return Radice->sx;} return NULL; } tree Destro(tree Radice) { if(Radice!=NULL){return Radice->dx;} return NULL; } tree Costruisci_Albero(int Etichetta, tree s, tree d) { tree Radice; Radice=(tree)malloc(sizeof(nodo)); Radice->dato=Etichetta; Radice->sx=s; Radice->dx=d; return Radice; } void Inorder(tree Radice) { if(Radice!=NULL) { Inorder(Radice->sx); printf("%d ", Valore_Etichetta(Radice)); Inorder(Radice->dx); } } void Preorder(tree Radice) { if(Radice!=NULL) { printf("%d ", Valore_Etichetta(Radice)); Preorder(Radice->sx); Preorder(Radice->dx); } } void Postorder(tree Radice) { if(Radice!=NULL) { Postorder(Radice->sx); Postorder(Radice->dx); printf("%d ", Valore_Etichetta(Radice)); } } |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2775
|
Il tipo tree dovrebbe essere un puntatore a un struct tree. Così come è scritto tutti i passaggi di parametri li stai facendo per valore
Non hai controllato l'esito della malloc. |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Esatto, Wingman87.
In piu', la Valore_Etichetta() ritorna un valore sensato solo se il nodo non e' nullo, altrimenti ritorna un valore indefinito. Sinistro() e Destro() ritorneranno NULL se il valore dell'albero sx/dx e' NULL oppure se il nodo e' NULL. Vabbe'... Cmq le cose piu' importanti le ha segnalate Wingman87
__________________
In God we trust; all others bring data |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
|
Dal titolo del post pensavo si parlasse di alberi binari di funzioni (cioè, non di interi, come poi si è rivelato, ma di puntatori a funzione)...e mi chiedevo che strana struttura potesse essere e a cosa potesse servire (in senso buono)
![]()
__________________
-> The Motherfucking Manifesto For Programming, Motherfuckers |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:18.