Arbres quelconques
Stephy
-
kilian Messages postés 8854 Statut Modérateur -
kilian Messages postés 8854 Statut Modérateur -
Bonjour,
J'aimerais implémenter un arbre quelconque (nombre quelconque de fils par noeud) en C mais je ne sais absolument pas comment m'y prendre pour commencer.
Quelqu'un saurait-il m'aiguiller pour démarrer?
Merci d'avance
J'aimerais implémenter un arbre quelconque (nombre quelconque de fils par noeud) en C mais je ne sais absolument pas comment m'y prendre pour commencer.
Quelqu'un saurait-il m'aiguiller pour démarrer?
Merci d'avance
1 réponse
Salut,
Je pense qu'il y a plusieurs possibilités.
J'ai bien une idée mais je ne sais pas si ce serait la meilleure solution.
Pourquoi pas une structure composée de
_ La valeur du noeud
_ Son fils ainé
_ Son premier frère
Ca donnerait ça (avec la valeur comme un entier):
Imaginons un arbre ou la racine possède trois fils. Et ça se termine là, il n'y a pas d'autres descendants.
La racine mettra le premier fils dans aine. Le deuxième fils sera dans frere de l'aine. Le troisième fils sera dans frere de frere de l'ainé.
Tous ces fils auront pour valeur NULL dans aine puisqu'ils n'auront pas de fils (ce sont des feuilles).
Je ne sais pas si c'est la meilleure solution. On pourrait aussi faire une implémentation avec une liste chainée qui contient tous les fils d'un noeud.
Je pense qu'il y a plusieurs possibilités.
J'ai bien une idée mais je ne sais pas si ce serait la meilleure solution.
Pourquoi pas une structure composée de
_ La valeur du noeud
_ Son fils ainé
_ Son premier frère
Ca donnerait ça (avec la valeur comme un entier):
struct Noeud{
int val;
struct Noeud *aine;
struct Noeud *frere;
}
Imaginons un arbre ou la racine possède trois fils. Et ça se termine là, il n'y a pas d'autres descendants.
La racine mettra le premier fils dans aine. Le deuxième fils sera dans frere de l'aine. Le troisième fils sera dans frere de frere de l'ainé.
Tous ces fils auront pour valeur NULL dans aine puisqu'ils n'auront pas de fils (ce sont des feuilles).
Je ne sais pas si c'est la meilleure solution. On pourrait aussi faire une implémentation avec une liste chainée qui contient tous les fils d'un noeud.