Dengeli bir ikili ağaçtaki her düğüm için, sol alt alt ağaç ve sağ alt alt ağacın yüksekliklerindeki maksimum fark en fazla 1'dir.
İkili bir ağacın yüksekliği, kök düğümden kök çocuğuna kökten en uzak olan mesafedir.
Aşağıda bir örnek verilmiştir:
2 <-- root: Height 1
/ \
7 5 <-- Height 2
/ \ \
2 6 9 <-- Height 3
/ \ /
5 11 4 <-- Height 4
İkili ağacın yüksekliği: 4
Aşağıdakiler ikili ağaçlar ve dengeli olup olmadıklarına dair bir rapordur:
Yukarıdaki ağaç dengesiz .
Yukarıdaki ağaç dengelidir .
İkili bir ağacın kökünü girdi olarak kabul eden ve ağaç dengesizse bir falsey değeri ve ağaç dengeli ise doğruluk değeri döndüren mümkün olan en kısa programı yazın.
Giriş
İkili ağacın kökü. Bu, kök nesneye bir referans veya hatta bir ikili ağacın geçerli bir temsili olan bir liste şeklinde olabilir.
Çıktı
Doğruluk değerini döndürür: Ağaç dengeli ise
İade değeri Falsey: Ağaç ise un dengeli.
İkili Ağacın Tanımı
Ağaç, bir değer ve iki ağaç veya işaretçi içeren bir nesnedir.
İkili ağacın yapısı aşağıdaki gibi görünür:
typedef struct T
{
struct T *l;
struct T *r;
int v;
}T;
İkili ağaç için liste gösterimi kullanılıyorsa, aşağıdakine benzer bir şey olabilir:
[root_value, left_node, right_node]
4
kalan ağaç dengeli mi?