devil_prince
13-06-2011, 11:29
Speriamo di avere risposta almeno a questo:cry:
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
#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);}
}
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
#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);}
}