|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Bannato
Iscritto dal: Oct 2006
Messaggi: 170
|
[C] Inizio Alberi
Salve, ho appena iniziato a studiare gli alberi e ho fatto un semplice esercizio in C che mi passa da un vettore a un albero e poi mi effettua una stampa simmetrica,ho provato anche con stampa con visita posticipata o anticipata, ma non cambia niente, fino alla lettura del vettore e al passaggio dal vettore all'albero dovrebbe andare, ma anche se la funzione della stampa è corretta fa crashare tutto. Chi mi sa dare una mano?
Grazie in anticipo. Codice HTML:
#include <stdio.h> #include <stdlib.h> typedef int data; struct nodo{ data d; struct nodo *sx; struct nodo *dx; }; typedef struct nodo NODE; typedef NODE *BTREE; BTREE init_node(data,BTREE,BTREE); BTREE create_tree(data a[],int,int); void leggi_array(int *, int ); void inorder(BTREE); int main(){ BTREE root; int dim; int i=0; printf("Immetti la dimensione del Array:"); scanf("%d",&dim); int v[dim]; leggi_array(v,dim); root=create_tree(v,i,dim); inorder(root); system("PAUSE"); } void inorder(BTREE root){ if (root!=NULL){ inorder(root->sx); printf("%d",root->d); inorder(root->dx); } } void leggi_array(int *vett, int d){ int i; for(i=0;i<d;i++){ printf("Immetti vett[%d]= ",i); scanf("%d",&vett[i]); } } BTREE init_node(data d1,BTREE p1,BTREE p2){ BTREE t; t=malloc(sizeof(NODE)); t->d=d1; t->sx=p1; t->dx=p2; return t; } BTREE create_tree(data a[],int i,int size){ if (i>=size) return NULL; else { init_node(a[i],create_tree(a,2*i+1,size),create_tree(a,2*i+2,size)); } } |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
init_node(a[i],create_tree(a,2*i+1,size),create_tree(a,2*i+2,size));
Direi che ti serve un return su questa linea |
|
|
|
|
|
#3 |
|
Bannato
Iscritto dal: Oct 2006
Messaggi: 170
|
Non dovrebbe ritornare gia dalla funzione che è chiamata a sua volta da create tree?
No come non detto ora va che è una bellezza. Grazie al forume a cionci come sempre. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:24.



















