树遍历是指以系统方式访问树数据结构中的每个节点的过程.在postorder下面的图像中遍历
回报A, C, E, D, B, H, I, G, F (left, right, root).PREORDER遍历的Prolog代码是
preorder(tree(X,L,R),Xs) :-
preorder(L,Ls),
preorder(R,Rs),
append([X|Ls],Rs,Xs).
preorder(void,[]).
Run Code Online (Sandbox Code Playgroud)
我想修改上面的代码来实现postorder遍历.
伙计们,请在描述列表时考虑使用DCG,例如:
preorder(void) --> [].
preorder(tree(X, L, R)) -->
[X],
preorder(L),
preorder(R).
Run Code Online (Sandbox Code Playgroud)
用法:
?- phrase(preorder(Tree), List).
Run Code Online (Sandbox Code Playgroud)
您只需决定将[X]放在序列中的哪个位置即可获得不同的订单.
| 归档时间: |
|
| 查看次数: |
2544 次 |
| 最近记录: |