AVL Binary Heap (тест Balanace)
Я пытаюсь выполнить тестирование, если дерево является деревом AVL или не использует пролог.
Я провел тест на высоту, который подходит для тех тестов, которые я провел до сих пор, но мой тест на балансировку все еще не проходит успешно.
Это моя работа до сих пор:
avl('Branch'(LeftBranch,RightBranch)) :-
height(LeftBranch,H1),
height(RightBranch,H2),
abs(H1-H2) =< 1.
Этот код основан на более раннем коде стека-потока. Но это не работает во всех случаях. Будет включать мой код высоты. Где-то я допустил ошибку и уверен, где ее найти.
height(leaf(_),1).
height('Branch'(LeftBranch,RightBranch,H) :-
height(LeftBranch,H1),
height(RightBranch,H2),
H is max(H1,H2)+1.
Почему мой код не оценивает некоторые деревья?
Пролог - сбалансированное дерево или нет
Это была нить, на которой я основал свой тест дерева баланасов, и я попробовал его с деревом, которое он опубликовал в комментариях, но у меня не получилось, есть идеи?