एक संतुलित बाइनरी ट्री में प्रत्येक नोड के लिए, बाएं चाइल्ड सबट्री और राइट चाइल्ड सबट्री की ऊंचाइयों में अधिकतम अंतर 1 है।
एक बाइनरी ट्री की ऊंचाई रूट नोड से नोड बच्चे तक की दूरी है जो रूट से सबसे दूर है।
नीचे एक उदाहरण है:
2 <-- root: Height 1
/ \
7 5 <-- Height 2
/ \ \
2 6 9 <-- Height 3
/ \ /
5 11 4 <-- Height 4
बाइनरी ट्री की ऊंचाई: 4
निम्नलिखित बाइनरी पेड़ हैं और एक रिपोर्ट है कि वे संतुलित हैं या नहीं:
ऊपर का पेड़ असंतुलित है ।
उपरोक्त पेड़ संतुलित है ।
संभवतया सबसे छोटा कार्यक्रम लिखें जो एक बाइनरी ट्री की जड़ को इनपुट के रूप में स्वीकार करता है और एक असंतुलित मूल्य देता है यदि पेड़ असंतुलित है और एक सच्चा मूल्य है यदि पेड़ संतुलित है।
इनपुट
एक बाइनरी ट्री की जड़। यह रूट ऑब्जेक्ट के संदर्भ या यहां तक कि एक सूची के रूप में हो सकता है जो एक बाइनरी ट्री का एक वैध प्रतिनिधित्व है।
उत्पादन
सत्य मूल्य लौटाता है: यदि पेड़ संतुलित है
रिटर्न falsey मूल्य: पेड़ है संयुक्त राष्ट्र संतुलित।
एक बाइनरी ट्री की परिभाषा
एक पेड़ एक ऐसी वस्तु है जिसमें एक मूल्य होता है और या तो दो अन्य पेड़ या उन्हें इंगित करते हैं।
बाइनरी ट्री की संरचना कुछ इस तरह दिखती है:
typedef struct T
{
struct T *l;
struct T *r;
int v;
}T;
यदि बाइनरी ट्री के लिए सूची प्रतिनिधित्व का उपयोग किया जाता है, तो यह निम्नलिखित की तरह लग सकता है:
[root_value, left_node, right_node]
4
शेष पेड़ संतुलित है?