Mezzo decennio fa ero seduto in una classe di strutture di dati in cui il professore offriva credito extra se qualcuno potesse attraversare un albero senza ricorrere a ricorsione, una pila, una coda, ecc. (O qualsiasi altra struttura di dati simile) e solo alcuni suggerimenti. Mi è venuta in mente quella che pensavo fosse una risposta ovvia a quella domanda che alla fine fu accettata dal professore. Ero seduto in una classe di matematica discreta con un altro professore nello stesso dipartimento - e ha affermato che era impossibile attraversare un albero senza ricorsione, una pila, una fila, ecc. E che la mia soluzione non era valida.
Quindi, è possibile o impossibile? Perché o perché no?
Modifica: per aggiungere alcuni chiarimenti, l'ho implementato su un albero binario che aveva tre elementi: i dati memorizzati su ciascun nodo e i puntatori a due figli. La mia soluzione potrebbe essere estesa agli alberi n-ary con poche modifiche.
Il mio insegnante di strutture dati non ha posto alcun vincolo contro la mutazione dell'albero, e in effetti ho scoperto in seguito che la sua soluzione era quella di utilizzare i puntatori figlio per indicare nuovamente l'albero verso il basso. Il mio discreto professore di matematica ha detto che qualsiasi mutazione di un albero significa che non è più un albero secondo la definizione matematica di un albero, la sua definizione precluderebbe anche qualsiasi indicazione ai genitori - che corrisponderebbe al caso in cui l'ho risolto sopra.