Il y a une demi-décennie, j'étais assis dans une classe de structures de données où le professeur offrait un crédit supplémentaire si quelqu'un pouvait traverser un arbre sans utiliser la récursivité, une pile, une file d'attente, etc. (ou toute autre structure de données similaire) et seulement quelques pointeurs. J'ai trouvé ce que je pensais être une réponse évidente à cette question qui a finalement été acceptée par le professeur. J'étais assis dans un cours de mathématiques discret avec un autre professeur du même département - et il a affirmé qu'il était impossible de traverser un arbre sans récursivité, pile, file d'attente, etc., et que ma solution n'était pas valide.
Alors, est-ce possible ou impossible? Pourquoi ou pourquoi pas?
Edit: Pour ajouter des éclaircissements, j'ai implémenté cela sur un arbre binaire qui avait trois éléments - les données stockées à chaque nœud et les pointeurs vers deux enfants. Ma solution pourrait être étendue aux arbres n-aires avec seulement quelques changements.
Mon professeur de structures de données n'a mis aucune contrainte contre la mutation de l'arbre, et j'ai en effet découvert plus tard que sa propre solution était d'utiliser les pointeurs enfants pour remonter l'arbre en descendant. Mon professeur de mathématiques discret a déclaré que toute mutation d'un arbre signifie que ce n'est plus un arbre selon la définition mathématique d'un arbre, sa définition exclurait également tous les pointeurs vers les parents - ce qui correspondrait au cas où je l'ai résolu ci-dessus.