1

要素が二分木に含まれているかどうかを確認するにはどうすればよいですか? 例えば、

tree1(node(10,empty, node(100,empty, empty))).
tree2(node(~, node(+, empty, node(*, empty, empty)), node(!, node(/,empty, empty),empty))).
badTree( node(3, node(5, empty), empty)) .

?- tree2(T), memberT(!,T).
T = node(~, node(+, empty, node(*, empty, empty)), node(!, node(/, empty, empty), empty)) .
?- tree1(T),memberT(100,T).
T = node(10, empty, node(100, empty, empty)) .
4

1 に答える 1

1

これがまさにあなたの質問であったかどうかはわかりませんが、あなたが与える結果を生成するコードは次のとおりです(それらが仕様であることを前提としています):

memberT(Val, node( Val,  _Left, _Right)).
memberT(Val, node(_Val1,  Left, _Right)) :- memberT(Val, Left).
memberT(Val, node(_Val1, _Left,  Right)) :- memberT(Val, Right).
于 2013-02-28T10:22:00.820 に答える