Quelqu'un a-t-il une implémentation prête de l'algorithme de traversée en avant de C#?Inverser la largeur Première traversée en C#
Inverser la largeur Première traversée, je veux dire au lieu de chercher un arbre à partir d'un nœud commun, je veux rechercher l'arbre à partir du bas et converger graduellement vers un nœud commun.
Voyons voir la figure ci-dessous, c'est la sortie d'une largeur d'abord traversal:
Dans mon largeur inverse premier traversal, 9
, 10
, 11
et 12
seront les premiers noeuds trouvés (l'ordre d'entre eux ne sont pas importants car ils sont tous de premier ordre). 5
, 6
, 7
et 8
sont les deuxièmes quelques nœuds trouvés, et ainsi de suite. 1
serait le dernier noeud trouvé.
Des idées ou des pointeurs?
Edit: Modifier « Largeur de recherche d'abord » à « Polyvalence Première traversal » pour clarifier la question
Comment trouvez-vous toutes les feuilles sans traverser l'arbre entier? – Nifle
Non sans en savoir plus sur le problème. Il est normalement possible de débuter avec un nœud et un éventail, comme dans la recherche en largeur, la recherche en profondeur, l'approfondissement itératif, etc. Comment devons-nous savoir a priori que 9, 10, 11 et 12 sont trois sauts 1? –
Qu'avez-vous utilisé pour faire cette image? –