有人可以帮我解决 Prolog 中的问题吗?我想遍历一棵树 InOrder 。我设法在 postOrder 中做到了,因为它看起来更简单,但我不知道如何在Order 中更改它。我只假设我的代码有效,因为我不知道如何在目标部分声明一棵树。谁能帮助我。到目前为止,这是我的代码:
domains
elem=integer
tree=tr(elem,tree,tree);nil
list=elem*
predicates
preorder(tree,list)
conc(list,list,list)
clauses
conc([],L,L).
conc([X|L1],L2,[X|L3]):-
conc(L1,L2,L3).
preorder(nil,[]).
preorder(tr(R,LEFT,RIGHT),L):-
preorder(RIGHT,L1),
preorder(LEFT,L2),
conc([R],L2,L3),
conc(L3,L1,L)
.