Meia década atrás, eu estava sentado em uma classe de estruturas de dados em que o professor oferecia crédito extra se alguém pudesse atravessar uma árvore sem usar recursão, pilha, fila etc. (ou qualquer outra estrutura de dados semelhante) e apenas alguns indicadores. Eu vim com o que eu pensava ser uma resposta óbvia a essa pergunta que foi finalmente aceita pelo professor. Eu estava sentado em uma aula de matemática discreta com outro professor do mesmo departamento - e ele afirmou que era impossível atravessar uma árvore sem recursão, pilha, fila etc., e que minha solução era inválida.
Então, é possível ou impossível? Por que ou por que não?
Edit: Para adicionar alguns esclarecimentos, eu implementei isso em uma árvore binária que tinha três elementos - os dados armazenados em cada nó e ponteiros para dois filhos. Minha solução pode ser estendida para árvores n-árias com apenas algumas alterações.
Meu professor de estruturas de dados não impôs restrições contra a mutação da árvore e, de fato, descobri mais tarde que sua própria solução era usar os ponteiros filhos para apontar de volta para a árvore em seu caminho. Meu discreto professor de matemática disse que qualquer mutação de uma árvore significa que ela não é mais uma árvore de acordo com a definição matemática de uma árvore; sua definição também impediria qualquer indicação para os pais - o que corresponderia ao caso em que eu a resolvi acima.