Aby sprawdzić, czy jest to kompletne drzewo binarne lub w pełni drzewo binarne lub żadne z nich

Jestem nowy w koncepcji drzew binarnych. Utknąłem na pytanie przez wiele dni. Ma to na celu sprawdzenie, czy dane drzewo jest drzewem binarnym lub drzewem w pełni binarnym, ani żadnym z nich.

Pomyślałem o wielu algorytmach, ale żaden z nich nie spełnia każdego przypadku. Próbowałem google, ale nie było odpowiedniego rozwiązania.

Pomyślałem o zastosowaniu Techniki Przemierzania Poziomu, ale nie mogłem wymyślić, jak poznać ich poziomy po wstawieniu wszystkich węzłów do kolejki.

Dla drzewa w pełni binarnego próbowałem policzyć, czy stopień wszystkich węzłów wynosi 0 czy 2, ale jeśli drzewo ma jakiś węzeł pośredni z takim stopniem, to logika również jest błędna.

Zrobiłem drzewo za pomocą połączonej listy, Podstawowy - lewe dziecko, prawy związek dziecka.

Dla w pełni binarnego drzewa wykonuję inorder traverl i sprawdzałem stopień, jeśli 0 lub 2, ale jest to niewłaściwa przyczyna, jeśli jest jakiś węzeł na jakimś wcześniejszym poziomie ze stopniem 0, wtedy również wyjście jest prawdziwe.

Dla kompletnego drzewa binarnego nie mogłem znaleźć niczego właściwego.

Dziękuję Ci.

I używam C ++, więc jeśli logika używa wskaźników, to jest w porządku.

questionAnswers(5)

yourAnswerToTheQuestion