ツリーがAVLツリーであるか、プロローグを使用していないかをテストしようとしています。
これまでに行ったテストで機能する高さテストを作成しましたが、バランステストはまだうまくいきません。
これはこれまでの私の仕事です:
avl('Branch'(LeftBranch,RightBranch)) :-
height(LeftBranch,H1),
height(RightBranch,H2),
abs(H1-H2) =< 1.
私はこのコードを古いstackoverflowコードに基づいています。ただし、すべての場合に機能するわけではありません。私の身長コードが含まれます。どこかで私は間違いを犯しました、そして私はそれをどこで見つけるか確信しています。
height(leaf(_),1).
height('Branch'(LeftBranch,RightBranch,H) :-
height(LeftBranch,H1),
height(RightBranch,H2),
H is max(H1,H2)+1.
なぜ私のコードはいくつかの木を評価しないのですか?
これは私がバラナスツリーのテストに基づいたスレッドであり、彼がコメントに投稿したツリーで試してみましたが、失敗しました。何かアイデアはありますか?