Arbre avec plusieurs nœuds enfants et nœud suivant

Je veux construire un arbre avec les caractéristiques suivantes:

  1. Chaque nœud peut avoir 1 "nœud".
  2. Chaque nœud peut avoir plusieurs nœuds enfants.
  3. Le nombre de nœuds enfants peuvent varier d'un nœud à l'autre

Je pensais à une structure qui ressemblait à ceci:

struct tree {
  int value;
  struct tree* nextnode;
  struct tree** childnode;
};

Le nombre d'enfants à chaque nœud doit être paramétrées. Je ne suis pas sûr de la façon de le faire. Merci à l'avance!

Modifier: Permettez-moi d'essayer de la définir à l'aide d'un exemple: prenons le nœud de départ. Maintenant, je vais vous définir au moment de la compilation qu'il y aura 3 NextNodes et chacun de ces NextNodes aura 2 ChildNodes. C'est à Depth=0. Au Depth = 1 (c'est à dire pour chaque nœud enfant de Depth=0) je précise qu'il y aura 4 NextNodes et pour chacune de ces NextNodes il y aura 3 ChildNodes et ainsi de suite. De l'espoir, je suis en mesure de l'exprimer correctement. S'il vous plaît ne demandez si je suis pas clair quelque part.

Edit2: Voici une photo:

Arbre avec plusieurs nœuds enfants et nœud suivant

Vous structure de données a l'air bien; il n'est pas clair que la question est.
Amicale astuce: Si ce sont les devoirs, n'oubliez pas de balise en tant que tel!
Cela devrait être votre réponse codereview.stackexchange.com/questions/569/.... Voir le code qui est en cause. Et codegolf.stackexchange.com/questions/339/binary-tree-encoding.
Si le problème est de savoir comment allouer de la mémoire dynamiquement afin de prendre en compte un nombre variable de enfants, je suggère fortement à l'aide de conteneurs STL plus smart pointeurs plutôt que brut de pointeurs.
Vous devriez état plus du problème à résoudre, plutôt que de les problèmes avec votre solution. Quelles sont les exigences? Ce qui ne l' nextnode pointeur de la représenter? Il est habituel de mettre en œuvre les arbres avec un nombre inconnu d'enfants par nœud avec un seul first_child pointeur dans le parent et un next_node (ou next_sibling) liste des formulaires de la liste des enfants, mais dans ce cas, childNode devrait être struct tree* childNode; (pour représenter le pointeur vers le premier enfant, à partir de laquelle commencer à parcourir childnode->nextnode pour le reste de la fratrie). Est-ce que vous est-il destiné?

OriginalL'auteur user560913 | 2011-06-17