二叉树第n层的元素
Elements of nth level of binary tree
如何找到给定级别的二叉树的所有元素?
我试过这个:
nlevel(void,_,[]).
nlevel(tree(X,L,R),0,[X]).
nlevel(tree(X,L,R),N,Zs):-
nlevel(L,N1,Xs),
nlevel(R,N1,Ys),
append(Xs,Ys,Zs),
N is N1+1.
,但是没用。
试试这个(我无法访问 Prolog 来检查)
nlevel(void, _, []).
nlevel(tree(X,L,R), 0, [X]). % (* end of recursion *)
nlevel(tree(X,L,R), N, Zs):-
N > 0,
N1 is N-1, % (* go one more step down, with N known *)
nlevel(L, N1, Xs),
nlevel(R, N1, Ys),
append(Xs, Ys, Zs). % (* possible to use difference lists to append *)
更新感谢 Will Ness!
如何找到给定级别的二叉树的所有元素? 我试过这个:
nlevel(void,_,[]).
nlevel(tree(X,L,R),0,[X]).
nlevel(tree(X,L,R),N,Zs):-
nlevel(L,N1,Xs),
nlevel(R,N1,Ys),
append(Xs,Ys,Zs),
N is N1+1.
,但是没用。
试试这个(我无法访问 Prolog 来检查)
nlevel(void, _, []).
nlevel(tree(X,L,R), 0, [X]). % (* end of recursion *)
nlevel(tree(X,L,R), N, Zs):-
N > 0,
N1 is N-1, % (* go one more step down, with N known *)
nlevel(L, N1, Xs),
nlevel(R, N1, Ys),
append(Xs, Ys, Zs). % (* possible to use difference lists to append *)
更新感谢 Will Ness!