BCA / B.Tech 11 min read

Full Binary Tree in Hindi

Full Binary Tree in Hindi | डाटा स्ट्रक्चर में  फुल बाइनरी ट्री हिंदी में :


फुल बाइनरी ट्री (Full Binary Tree) क्या है?

फुल बाइनरी ट्री (Full Binary Tree) एक विशेष प्रकार का बाइनरी ट्री है जिसमें प्रत्येक नोड के या तो 0 या 2 चाइल्ड होते हैं। इसका मतलब है कि हर नोड या तो लीफ नोड होगा (जिसके कोई चाइल्ड नोड नहीं होंगे) या फिर उसके ठीक दो चाइल्ड होंगे। इस ट्री की संरचना बहुत संगठित होती है 
और इसे गणितीय रूप से विश्लेषण करना आसान होता है।

फुल बाइनरी ट्री एक संगठित और संतुलित डेटा स्ट्रक्चर है जो कुशलतापूर्वक सर्च, इनसर्शन और डिलीशन ऑपरेशन को करने में मदद करता है। यह विभिन्न प्रकार के एप्लिकेशनों में उपयोग किया जाता है जैसे कि डेटा प्रोसेसिंग, कंप्यूटर नेटवर्क, और डेटा संरचनाओं में। हालाँकि, इसकी जटिलता और
 बड़े डेटा सेट के लिए इसकी सीमाओं के कारण इसके उपयोग में सावधानी बरतने की आवश्यकता होती है।


Characteristics of Full Binary Tree in Data Structure in Hindi | फुल बाइनरी ट्री की विशेषताएँ :

नोड्स की संख्या: यदि ट्री की ऊंचाई 
h है, तो एक फुल बाइनरी ट्री में अधिकतम 
2
+
1
1
h+1
 −1 नोड्स हो सकते हैं।
चाइल्ड नोड्स: प्रत्येक नोड या तो एक लीफ नोड होता है या उसके दो चाइल्ड होते हैं। कोई भी नोड केवल एक चाइल्ड के साथ मौजूद नहीं होता है।
लीफ नोड्स की संख्या: फुल बाइनरी ट्री में लीफ नोड्स की संख्या हमेशा 
𝑛
+
1
n+1 होती है, जहाँ 
𝑛
n आंतरिक नोड्स की संख्या है।
गहराई (Depth): फुल बाइनरी ट्री में नोड्स की गहराई समान होती है, जिससे ट्री का संतुलन बना रहता है।

Types of Full Binary Tree in Data Structure in Hindi | फुल बाइनरी ट्री के प्रकार :

परफेक्ट बाइनरी ट्री (Perfect Binary Tree): एक परफेक्ट बाइनरी ट्री एक ऐसा ट्री होता है जिसमें सभी इंटरनल नोड्स के ठीक दो चाइल्ड होते हैं और सभी लीफ नोड्स एक ही स्तर पर होते हैं।

कम्प्लीट बाइनरी ट्री (Complete Binary Tree): एक कम्प्लीट बाइनरी ट्री वह होता है जिसमें सभी लेवल्स पूरी तरह से भरे होते हैं सिवाय आखिरी लेवल के, और आखिरी लेवल के नोड्स बाईं ओर से भरे होते हैं।

बैलेंस्ड बाइनरी ट्री (Balanced Binary Tree): बैलेंस्ड बाइनरी ट्री में नोड्स के दोनों सब-ट्री की गहराई के बीच का अंतर कभी भी 1 से ज्यादा नहीं होता है।

डिग्री-2 ट्री (Degree-2 Tree): यह वह ट्री है जिसमें प्रत्येक नोड के या तो 2 चाइल्ड होते हैं या फिर वह लीफ नोड होता है।


Advantages of Full Binary Tree in Data Structure in Hindi | फुल बाइनरी ट्री के लाभ : 

अधिक कुशल सर्चिंग (Efficient Searching): फुल बाइनरी ट्री में सर्चिंग बहुत तेज़ होती है क्योंकि ट्री संगठित और संतुलित रहता है। सर्चिंग की समय जटिलता 
𝑂
(
𝑙
𝑜
𝑔
𝑛
)
O(logn) होती है।

तेज़ इनसर्शन और डिलीशन (Fast Insertion and Deletion): फुल बाइनरी ट्री में इनसर्शन और डिलीशन ऑपरेशन जल्दी और आसानी से हो सकते हैं, जिससे यह डेटा प्रोसेसिंग के लिए बेहतर बनता है।

हायरार्किकल डेटा स्टोरेज (Hierarchical Data Storage): ट्री की संरचना हायरार्की में डेटा को संगठित करने में मदद करती है, जिससे फ़ाइल सिस्टम और डेटाबेस जैसी संरचनाओं में डेटा को व्यवस्थित करना आसान होता है।

स्पेस की बचत (Space Efficiency): फुल बाइनरी ट्री में हर नोड की स्थिति और चाइल्ड नोड्स की जानकारी पहले से ही सुनिश्चित होती है, जिससे स्पेस मैनेजमेंट में आसानी होती है।

Disadvantages of Full Binary Tree in Data Structure in Hindi | फुल बाइनरी ट्री के नुकसान : 

जटिलता (Complexity): फुल बाइनरी ट्री की संरचना अन्य सरल डेटा स्ट्रक्चर की तुलना में अधिक जटिल होती है, जिससे इसके रखरखाव में मुश्किलें हो सकती हैं।

बड़े डेटा के लिए अनुकूल नहीं (Not Suitable for Large Data): अगर डेटा बहुत बड़ा हो जाए, तो फुल बाइनरी ट्री की संरचना बहुत बड़ी हो सकती है, जिससे मेमोरी की अधिक खपत हो सकती है।

डिलीशन ऑपरेशन में समस्याएँ (Deletion Issues): कुछ मामलों में, फुल बाइनरी ट्री से नोड्स हटाने पर पुनः संतुलन बनाना मुश्किल हो सकता है, खासकर जब ट्री बहुत बड़ा होता है।

रीस्ट्रक्चरिंग की आवश्यकता (Need for Restructuring): जब किसी नोड को हटाया जाता है या डाला जाता है, तो ट्री की संरचना बिगड़ सकती है और इसे फिर से संतुलित करना पड़ता है।

Examples of Full Binary Tree in Data Structure in Hindi | फुल बाइनरी ट्री के उदाहरण : 

हफमैन कोडिंग ट्री (Huffman Coding Tree): हफमैन एल्गोरिदम के उपयोग से डेटा को एन्कोड करने के लिए फुल बाइनरी ट्री का उपयोग किया जाता है, जिससे कुशल संपीड़न (compression) प्राप्त होता है।

मर्कल ट्री (Merkle Tree): क्रिप्टोग्राफी और ब्लॉकचेन टेक्नोलॉजी में मर्कल ट्री का उपयोग डेटा की अखंडता को सत्यापित करने के लिए किया जाता है। यह एक प्रकार का फुल बाइनरी ट्री है।

हीप (Heap): हीप एक विशेष प्रकार का फुल बाइनरी ट्री होता है, जो अधिकतम या न्यूनतम मान को प्राथमिकता देता है। इसका उपयोग प्रायोरिटी क्यू, शेड्यूलिंग, और सॉर्टिंग एल्गोरिदम में किया जाता है।








Full Binary in Data Structure Tree in Python program :

नीचे दिए गए कोड में हम फुल बाइनरी ट्री का निर्माण और उसकी जाँच करते हैं। यह प्रोग्राम Python में लिखा गया है। आप इसे अन्य भाषाओं जैसे C++, Java में भी अनुकूलित कर सकते हैं।

Python प्रोग्राम: फुल बाइनरी ट्री की जाँच

# Binary Tree Node के लिए एक class
class Node:
    def __init__(self, data):
        self.data = data
        self.left = None
        self.right = None

# फुल बाइनरी ट्री की जाँच के लिए एक function
def is_full_binary_tree(root):
    # अगर ट्री खाली है, तो यह फुल बाइनरी ट्री है
    if root is None:
        return True
    
    # अगर नोड का कोई भी चाइल्ड नहीं है, तो यह लीफ नोड है और सही है
    if root.left is None and root.right is None:
        return True

    # अगर नोड के दोनों चाइल्ड्स हैं, तो दोनों सब-ट्री को चेक करें
    if root.left is not None and root.right is not None:
        return is_full_binary_tree(root.left) and is_full_binary_tree(root.right)

    # अगर एक चाइल्ड है और दूसरा नहीं, तो यह फुल बाइनरी ट्री नहीं है
    return False

# Driver code
if __name__ == "__main__":
   
 # एक फुल बाइनरी ट्री बनाना
    root = Node(1)
    root.left = Node(2)
    root.right = Node(3)
    root.left.left = Node(4)
    root.left.right = Node(5)
    root.right.left = Node(6)
    root.right.right = Node(7)

    # फुल बाइनरी ट्री की जाँच
    if is_full_binary_tree(root):
        print("यह एक फुल बाइनरी ट्री है।")
    else:
        print("यह एक फुल बाइनरी ट्री नहीं है।")

प्रोग्राम का विवरण:

  • Node class: यह क्लास एक बाइनरी ट्री के नोड का निर्माण करती है, जिसमें डेटा और उसके बाएं और दाएं चाइल्ड्स की जानकारी होती है।
  • is_full_binary_tree function: यह फ़ंक्शन एक बाइनरी ट्री को इनपुट के रूप में लेता है और यह जाँच करता है कि ट्री फुल बाइनरी ट्री है या नहीं।
  • अगर नोड का कोई भी चाइल्ड नहीं है, तो यह लीफ नोड है।
  • अगर नोड के दोनों चाइल्ड्स हैं, तो उसके दोनों सब-ट्री को जाँचता है।
  • अगर केवल एक चाइल्ड है, तो यह फुल बाइनरी ट्री नहीं है।

Driver code: 

  • यहाँ हम एक उदाहरण ट्री का निर्माण करते हैं और is_full_binary_tree() फ़ंक्शन का उपयोग करके ट्री की जाँच करते हैं।
  • उदाहरण आउटपुट :
  • यह एक फुल बाइनरी ट्री है।
  • आप इसे अपने डेटा के साथ अनुकूलित कर सकते हैं या किसी अन्य प्रोग्रामिंग भाषा में इसका अनुवाद कर सकते हैं।