Quel est l'algorithme de vérification si un arbre binaire est un arbre binaire complet? (En utilisant Prolog).Comment écrire un prédicat complet d'arbre binaire en utilisant Prolog
Par exemple:
?- complete(nil).
true.
?- complete(tree(1,nil,nil)).
true.
?- complete(tree(1,tree(2,nil,nil),nil)).
false.
?- complete(tree(1,tree(2,nil,nil),tree(3,nil,nil))).
true.
Quel est l'algorithme en anglais, pour commencer? –
Eh bien, j'ai besoin que toutes les feuilles soient à la même distance de la racine. Donc, l'algorithme le plus simple passe par tous et vérifie si tous ont la même distance depuis la racine. – user550413
Peut-être une approche légèrement plus rapide: Trouvez la profondeur d'une feuille, puis recherchez un nœud feuille qui a moins de profondeur ou un nœud non-feuille qui a une profondeur égale. Si vous trouvez l'un de ceux-ci, l'arbre binaire n'est pas "complet". – hardmath