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![]()
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![]()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 struct node { struct node *pere; struct node **fils; size_t nb_fils; void *data; };
Tu peux également utiliser une représentation fils-gauche, frère-droit qui a l'avantage de permettre une représentation binaire d'un arbre quelconque. Dans cette représentation, au lieu d'utiliser un tableau ou une liste de pointeurs sur chacuns des fils, chaque noeud possède deux pointeurs (en plus de celui vers le père). Le premier pointe sur le fils le plus à gauche et le deuxième pointe sur le frère situé immédiatement à droite. Si le noeud ne possède aucun fils, alors fils_gauche vaut NULL. Idem si ce noeud est le fils le plus à droite de son père. Cela donne donne la structure suivante:
Thierry
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 struct Node { struct Node *pere; struct Node *fils_gauche; struct Node *frere_droite; void *data; };
"The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
"If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow
FAQ-Python FAQ-C FAQ-C++
+
Partager