Я пытаюсь пройти общее дерево в прологе в обратном порядке. Я нашел много обходов двоичного дерева в обратном порядке, но не смог использовать их для своей цели. Я написал программу, но она печатает мое дерево только обратным способом, как вводится, т.е. для ввода
?-postorder(a(b,c,d(e,f,g))).
->g f e d c b a true (is what I get)
->b c e f g d a true (what i want to get)
Вот код, который мне удалось написать до сих пор
postorder([]).
postorder(List):- List =..X , myfun(X).
myfun([A|B]):- atom(A), myfun(B),write(A),write(' ').
myfun([A|B]):- postorder(A),myfun(B).
myfun([]).
У меня нет способа обхода по порядку
Любая помощь очень ценится