Drzewo zrównoważone
Lekcja 11 z 13 w kursie Drzewo binarne — struktury danych, seria #3 w Coddy.
W kolejnych wyzwaniach użyjesz drzewa BinaryTree, które zbudowałeś. Użyj udostępnionej implementacji, aby je rozwiązać.
Wyzwanie
ŁatwyNapisz funkcję o nazwie isBalanced, która otrzymuje ciąg znaków reprezentujący BinaryTree (rekurencyjna postać [value, leftSubtree, rightSubtree], z null dla pustego drzewa) i zwraca true, jeśli drzewo jest zrównoważone, a w przeciwnym razie false. Drzewo jest zrównoważone, jeśli dla każdego węzła wysokości jego dwóch poddrzew różnią się od siebie najwyżej o 1.
Spróbuj swoich sił
#include <stdio.h>
#include <string.h>
#include "solution.h"
int main() {
char s[4096];
if (!fgets(s, sizeof(s), stdin)) s[0] = '\0';
s[strcspn(s, "\r\n")] = '\0';
printf("%s\n", isBalanced(s) ? "true" : "false");
return 0;
}
Wszystkie lekcje w sekcji Drzewo binarne — struktury danych, seria #3
Poćwicz samodzielnie: Kompilator C online