J'essaie donc de créer une liste chaînée à partir d'un arbre binaire en utilisant le précommande tranversal. J'ai tellement de problèmes à le faire, j'ai vu certaines des "solutions" mais je n'ai pas aimé! J'essaie quelque chose de simple.Création d'une liste chaînée à partir d'un arbre binaire (précommande tranversale)
Voici le code que je suis jusqu'à présent:
typedef struct nodo {
int value;
struct nodo *left, *right;
} *ABin;
typedef struct lligada {
int value;
struct lligada *next;
} *LInt;
void preorder (ABin a, LInt * l) {
LInt r=*l,tmp;
tmp=r;
if (!a) {
*l=NULL;
}
else {
r=malloc(sizeof(struct lligada));
r->value=a->value;
r=r->next;
*l=tmp;
preorder (a->left,l);
preorder (a->right,l);
}
}
Je reçois toujours une liste vide!
Oh, mon mauvais! Tu as raison. – Bruno
il devrait pointer vers NULL au début. – Bruno
J'aimerais, mais je ne peux pas changer la déclaration. Il a été mis en place par mon professeur. – Bruno