|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Nov 2010
Messaggi: 71
|
[C] creare albero binario di ricerca con doppio puntatore
Salve a tutt. ho il seguente problema non riesco a creare un albero binario di ricerca con i puntatori a puntatori. con il singolo puntatore ci sono riuscito.
Codice:
#include <stdio.h> #include <malloc.h> typedef struct nodo { int info; struct nodo *sinistro; struct nodo *destro; }nod; int vuoto(nod **rad) { if((*rad))/*rad == NULL*/ return 0;/*albero vuoto*/ else return 1;/*albero non vuoto*/ } void inserisci(nod **punt,int numero) { if (vuoto(punt))/*se punt==NULL*/ { punt=(nod**)malloc(sizeof(nod));/*inserimento valore*/ (*punt)->info=numero; (*punt)->sinistro=NULL; (*punt)->destro=NULL; } else { if (numero>(*punt)->info)/*scorriamo a destra*/ inserisci(&(*punt)->destro,numero); else /*scorriamo a sinistra*/ inserisci(&(*punt)->sinistro,numero); } } nod **crea_albero() { int val; nod **p; *p=NULL; do { printf("INSERIRE VALORE : \n"); scanf("%d", &val); if (val!=0) /*possiamo inserire il valore*/ inserisci(p,val); } while (val!=0); return p; } int main() { nod **rad; printf("creazione ALBERO \n"); rad=crea_albero(); } |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:54.