Untuk setiap simpul dalam pohon biner seimbang, perbedaan maksimum dalam ketinggian subtree anak kiri dan subtree anak kanan paling banyak 1.
Ketinggian pohon biner adalah jarak dari simpul akar ke simpul anak yang paling jauh dari akar.
Di bawah ini adalah contohnya:
2 <-- root: Height 1
/ \
7 5 <-- Height 2
/ \ \
2 6 9 <-- Height 3
/ \ /
5 11 4 <-- Height 4
Tinggi pohon biner: 4
Berikut ini adalah pohon biner dan laporan tentang apakah mereka seimbang atau tidak:
Pohon di atas tidak seimbang .
Pohon di atas seimbang .
Tuliskan program sesingkat mungkin yang menerima sebagai input root dari pohon biner dan mengembalikan nilai falsey jika pohon itu tidak seimbang dan nilai yang benar jika pohon itu seimbang.
Memasukkan
Akar pohon biner. Ini mungkin dalam bentuk referensi ke objek root atau bahkan daftar yang merupakan representasi yang valid dari pohon biner.
Keluaran
Mengembalikan nilai kebenaran: Jika pohon seimbang
Mengembalikan nilai falsey: Jika pohon tidak seimbang.
Definisi Pohon Biner
Sebuah pohon adalah objek yang berisi nilai dan dua pohon lain atau pointer ke sana.
Struktur pohon biner terlihat seperti berikut:
typedef struct T
{
struct T *l;
struct T *r;
int v;
}T;
Jika menggunakan representasi daftar untuk pohon biner, itu mungkin terlihat seperti berikut ini:
[root_value, left_node, right_node]
4
, apakah pohon yang tersisa seimbang?