PROBLEMA Albero binario ordinato

boniek

Nuovo Utente
29
1
Buonasera a tutti, devo creare un albero binario ordinato in linguaggio C tramite funzione ricorsiva e poi creare una funzione di stampa per poterlo stampare in ordine crescente.

Son arrivato a tale programmazione ma sembrerebbe entrare in loop all'interno della funzione stampa. Temo che ci sia un problema nella creazione vera e propria dell'albero ordinato. Riuscite ad aiutarmi?




#include <stdio.h>
#include <stdlib.h>

typedef struct nodo {
int elem;
struct nodo *left;
struct nodo *right;
} Nodo;
typedef Nodo * tree;

tree ins_ord(int a,tree);

void stampa(tree t);

int main () {
tree t;
int i;
int v[]={8,4,12,2,6,10,14,1,3,5,7,9,11,13,15,0};
for (i=0;i!=0;i++)
t=ins_ord(v,t);
stampa(t);
return 0;
}

tree ins_ord(int a,tree t) {
if (t==NULL) {
t=malloc(sizeof(Nodo));
t->right=NULL;
t->left=NULL;
t->elem=a;
return t;}

if (a>t->elem) {
t->right=ins_ord(a,t->right);
return t;}
else {t->left=ins_ord(a,t->left);
return t;}
}


void stampa (tree t) {
if (t!=NULL) {
stampa(t->left);
printf("%d",t->elem);
stampa(t->right);
}
}
 

wolf1792

Utente Attivo
324
53
CPU
Intel i5 2320
Scheda Madre
AsRock P67 Pro3
HDD
WD caviar blue 500Gb
RAM
8 Gb Vegeance low profile
GPU
ATI HD6850
Monitor
Tv Samsung 24" Full-HD
PSU
XFX 450W
Case
Cooler Master 330
OS
windows 8/Ubuntu 13.04
for (i=0;i!=0;i++) ???
prova a vedere quello prima di tutto...
 

boniek

Nuovo Utente
29
1
scusa hai perfettamente ragione che fesso che sono dopo 4 ore al computer manco mi accorgo di certi errori elementari D:

update: oltre a for (i=0;v!=0;i++) l'errore era semplicemente che la variabile tree t andava definita globalmente per poter far funzionare la ins_ord.

Grazie.
 
Ultima modifica:

Ci sono discussioni simili a riguardo, dai un'occhiata!

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili