AVL Binary Heap (test Balanace)

Próbuję przeprowadzić testowanie, jeśli drzewem jest drzewo AVL lub nie używamy prologu.

Zrobiłem test wysokości, który działa dla testów, które do tej pory zrobiłem, ale mój test wyważania nadal nie jest silny.

To moja praca do tej pory:

avl('Branch'(LeftBranch,RightBranch)) :-
  height(LeftBranch,H1),
  height(RightBranch,H2),
  abs(H1-H2) =< 1.

Kod ten oparłem na starszym kodzie stackoverflow. Ale to nie działa we wszystkich przypadkach. Będzie zawierać mój kod wysokości. Gdzieś popełniłem błąd i jestem pewien, gdzie go znaleźć.

height(leaf(_),1).
height('Branch'(LeftBranch,RightBranch,H) :-
  height(LeftBranch,H1),
  height(RightBranch,H2),
  H is max(H1,H2)+1.

Dlaczego mój kod nie jest oceniany dla niektórych drzew?

Prolog - zrównoważone drzewo lub nie

To był wątek, na którym opierałem test drzewa balanace, i spróbowałem go z drzewem, które opublikował w komentarzach, ale nie udało mi się, żadnych pomysłów?

questionAnswers(2)

yourAnswerToTheQuestion