Albero bilanciato
Lezione 11 di 13 del corso Albero binario - Serie sulle strutture dati #3 di Coddy.
Le prossime sfide utilizzano il BinaryTree che hai creato. Usa l’implementazione fornita per risolverle.
Sfida
FacileScrivi una funzione chiamata isBalanced che riceva una stringa che rappresenta un BinaryTree (nella forma ricorsiva [value, leftSubtree, rightSubtree], con null per i nodi vuoti) e restituisca true se l’albero è bilanciato, altrimenti false. Un albero è bilanciato se, per ogni nodo, le altezze dei suoi due sottoalberi differiscono al massimo di 1.
Provalo tu
#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;
}
Tutte le lezioni di Albero binario - Serie sulle strutture dati #3
Esercitati da solo: Compilatore C online