|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: May 2011
Messaggi: 17
|
[C]Creazione di un albero generico
Speriamo di avere risposta almeno a questo
ho un problema con un esercizio, creazione di un albero qualsiasi partendo dalla coda (elemento e indirizzo del padre)...riesco a copiare l'elemento ed il grado, ma non i figli...mi date una mano Codice:
#include <stdio.h>
#include <stdlib.h>
typedef struct input {
char elem;
int ind_padre;}Input;
typedef struct nodo {
char elem;
int grado;
int figli[4];
} Nodo;
void main ()
{
Input elementi[12]={{'M',2},
{'A',4},
{'T',10},
{'F',2},
{'E',-1},
{'Z',4},
{'L',2},
{'S',1},
{'B',1},
{'P',2},
{'R',4}};
Nodo albero[12];
int i, j, temp_grado, cont_figli=0;
char c;
for(i=0;i<11;i++){
for(j=0;j<4;j++){
albero[i].grado=0;
albero[i].figli[j]=0;}
printf("inf=%c\tgr=%d\tpt1=%d\tpt2=%d\tpt3=%d\tpt4=%d\n",albero[i].elem, albero[i].grado,albero[i].figli[0],albero[i].figli[1],albero[i].figli[2],albero[i].figli[3]);}
puts("\n\n\n\n");
for(i=0;i<11;i++){
albero[i].elem = elementi[i].elem;
temp_grado = elementi[i].ind_padre;
albero[temp_grado].grado++;
albero[temp_grado].figli[temp_grado] = i;
}
for(i=0;i<11;i++){
printf("inf=%c\tgr=%d\tpt1=%d\tpt2=%d\tpt3=%d\tpt4=%d\n",albero[i].elem, albero[i].grado,albero[i].figli);}
}
|
|
|
|
|
|
#2 |
|
Member
Iscritto dal: May 2011
Messaggi: 39
|
Mmmm, mi sa che c'è un problema con quella typedef. Un albero è costituito da nodi, giusto?Ogni nodo deve contenere un valore (il dato) e due puntatori (uno che punti al ramo sinistro, e l'altro al destro), che mi pare tu non abbia dichiarato nella typedef del nodo.
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:28.



















