3 votes

Attribution programmée de nœuds à un arbre/réseau hiérarchique

J'ai un réseau/arbre qui ressemble à ceci.

enter image description here

J'ai utilisé un arbre binaire pour représenter ce modèle. Cependant, l'attribution manuelle des right y left les paramètres d'un nœud deviennent encombrants pour les niveaux > 4.

Existe-t-il une méthode qui me permette d'effectuer cette tâche de manière programmée ?

4voto

Vous pouvez d'abord créer un tableau de nœuds en 2D où la ligne i correspond au niveau i sur votre papier, et la colonne j correspond à la j -ème nœud de ce niveau :

for i = 1 to n:
   for j = 1 to i:
      A[i][j] = new Node()

Alors, la relation entre les nœuds est, le A[i][j] le noeud a un enfant gauche étant A[i+1][j] et a droit enfant étant A[i+1][j+1] .

for i = 1 to n-1:
   for j = 1 to i:
      A[i][j].left = A[i+1][j]
      A[i][j].right = A[i+1][j+1]

for j = 1 to n:
   A[n][j].left = null
   A[n][j].right = null

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X