Pół dekady temu siedziałem w klasie struktur danych, w której profesor oferował dodatkowy kredyt, jeśli ktokolwiek mógł przemierzać drzewo bez użycia rekurencji, stosu, kolejki itp. (Lub innych podobnych struktur danych) i tylko kilka wskazówek. Wpadłem na to, co uważałem za oczywistą odpowiedź na to pytanie, które ostatecznie zostało zaakceptowane przez profesora. Siedziałem w dyskretnej klasie matematycznej z innym profesorem w tym samym dziale - a on zapewnił, że niemożliwe jest przemierzanie drzewa bez rekurencji, stosu, kolejki itp. Oraz że moje rozwiązanie jest nieprawidłowe.
Czy to możliwe, czy niemożliwe? Dlaczego lub dlaczego nie?
Edycja: Aby dodać wyjaśnienia, zaimplementowałem to w drzewie binarnym, które miało trzy elementy - dane przechowywane w każdym węźle i wskaźniki do dwojga dzieci. Moje rozwiązanie można rozszerzyć na drzewa n-ary z kilkoma zmianami.
Mój nauczyciel struktur danych nie nałożył żadnych ograniczeń na mutowanie drzewa, i rzeczywiście dowiedziałem się później, że jego własnym rozwiązaniem było użycie wskaźników potomnych, aby skierować drzewo w górę. Mój dyskretny profesor matematyki powiedział, że jakakolwiek mutacja drzewa oznacza, że nie jest to już drzewo zgodnie z matematyczną definicją drzewa, jego definicja wyklucza również wszelkie wskazówki dla rodziców - co pasowałoby do przypadku, w którym rozwiązałem je powyżej.