"पूर्ण बाइनरी ट्री", "सख्त बाइनरी ट्री", "फुल बाइनरी ट्री" के बीच अंतर?


80

मैं नीचे के पेड़ों की शब्दावली के बारे में उलझन में हूं, मैं ट्री का अध्ययन कर रहा हूं, और मैं इन पेड़ों के बीच अंतर करने में असमर्थ हूं:

a) पूरा बाइनरी ट्री

बी) सख्त बाइनरी ट्री

ग) पूर्ण बाइनरी ट्री

कृपया मुझे इन पेड़ों के बीच अंतर करने में मदद करें। डेटा संरचना में इन पेड़ों का उपयोग कब और कहाँ किया जाता है?


2
क्या en.wikipedia.org/wiki/Binary_tree#Types_of_binary_trees आपके प्रश्न का उत्तर नहीं देता है?
रॉड सेप

7
नहीं, नहीं, इनमें से बहुत भ्रम
kTiwari

1
सख्त बाइनरी ट्री: हर नोड में 2 बच्चे या कोई भी नोड नहीं हो सकता है
vikkyhacks

जवाबों:


73

विकिपीडिया पर पैदावार

एक पूर्ण बाइनरी ट्री (कभी-कभी उचित बाइनरी ट्री या 2-ट्री या सख्ती से बाइनरी ट्री) एक ऐसा पेड़ है जिसमें पत्तियों के अलावा प्रत्येक नोड में दो बच्चे होते हैं।

तो आपके पास केवल 1 बच्चे के साथ कोई नोड नहीं है। सख्त बाइनरी ट्री के समान होने की अपील करता है।

यहां Google से पूर्ण / सख्त बाइनरी ट्री की एक छवि दी गई है:

यहाँ छवि विवरण दर्ज करें

एक पूर्ण बाइनरी ट्री एक बाइनरी ट्री है जिसमें हर स्तर, संभवतः अंतिम को छोड़कर, पूरी तरह से भरा हुआ है, और सभी नोड्स यथासंभव शेष हैं।

यह एक संतुलित वृक्ष लगता है।

यहां एक पूर्ण बाइनरी ट्री की छवि है, Google से, छवि का पूर्ण पेड़ हिस्सा बोनस है।

यहाँ छवि विवरण दर्ज करें


34
आपका पूरा वृक्ष उदाहरण भी एक पूर्ण द्विआधारी वृक्ष होने के मानदंडों को पूरा करता है इसलिए अंतर स्पष्ट रूप से धुंधला है, मेरी राय में आप एक पूर्ण वृक्ष का उदाहरण दे सकते हैं जो पूर्ण बाइनरी पेड़ नहीं है और इसके विपरीत, यह उदाहरण देगा उत्तर पूर्ण :)
0decimal0

1
पूर्ण बाइनरी ट्री और सख्ती से बाइनरी ट्री के बीच अंतर है। उत्तर को देखें: stackoverflow.com/a/32064101/5237727
सौरभ भाटिया

2
इसके अलावा, जबकि सभी पूर्ण पेड़ संतुलित पेड़ हैं, सभी संतुलित पेड़ आवश्यक रूप से पूर्ण पेड़ नहीं हैं।
sfarbota

1
इसका क्या मतलब है कि हर स्तर पूरी तरह से भरा हुआ है?
लोलोलोल ओल

2
@ लोलोलोलोल इसका मतलब है कि सभी नोड्स जो संभवतः उस स्तर में हो सकते हैं, मौजूद हैं।
सैम मैं कह रहा हूं कि मोनिका

87

सही पेड़:

       x
     /   \
    /     \
   x       x
  / \     / \
 x   x   x   x
/ \ / \ / \ / \
x x x x x x x x

पूरा पेड़:

       x
     /   \
    /     \
   x       x
  / \     / \
 x   x   x   x
/ \ /
x x x

सख्त / पूर्ण पेड़:

       x
     /   \
    /     \
   x       x
  / \ 
 x   x 
    / \
    x x 

4
परिपूर्ण बाइनरी ट्री से आपका मतलब है ओपी द्वारा संदर्भित पूर्ण बाइनरी ट्री?
आरबीटी

3
परफेक्ट बाइनरी ट्री स्ट्रिक्ट / फुल बाइनरी ट्री के साथ-साथ कम्प्लीट बाइनरी ट्री दोनों है लेकिन इसके विपरीत हमेशा सही नहीं हो सकते हैं।
नव

51

एक STRICT और FULL BINARY TREE में अंतर है।

1) पूर्ण द्वैत वृक्ष: ऊँचाई h का एक द्विआधारी वृक्ष जिसमें बिल्कुल (2 ^ h) -1 तत्व होते हैं, पूर्ण द्विआधारी वृक्ष कहलाता है । (संदर्भ: पृष्ठ 427, डेटा संरचनाएं, एल्गोरिथ्म और अनुप्रयोग C ++ [विश्वविद्यालय प्रेस], सरताज साहनी द्वारा दूसरा संस्करण)।

या दूसरे शब्दों में

एक पूर्ण द्विपक्षिका में प्रत्येक नोड में ठीक 0 या 2 बच्चे होते हैं और सभी पत्ती नोड एक ही स्तर पर होते हैं।

उदाहरण के लिए: निम्नलिखित एक पूर्ण द्विवर्षीय है:

          18
       /      \   
     15       30    
    /  \     /   \   
  40    50  100  40 

2) STRICT BINARY TREE: प्रत्येक नोड में ठीक 0 या 2 बच्चे हैं।

उदाहरण के लिए: निम्नलिखित एक द्विवर्षीय काल है:

         18
       /     \   
     15       30    
    /  \          
  40    50

मुझे लगता है कि एक पूर्ण बाइनरी ट्री की परिभाषा में कोई भ्रम नहीं है, फिर भी पोस्ट की पूर्णता के लिए मैं यह बताना चाहूंगा कि एक पूर्ण बाइनरी ट्री क्या है।

3) कम्प्लीट बायनरी ट्री: एक बाइनरी ट्री पूर्ण बाइनरी ट्री है, यदि सभी स्तर पूरी तरह से भरे हुए हैं, संभवतः अंतिम स्तर को छोड़कर और अंतिम स्तर में सभी कुंजियाँ यथासंभव शेष हैं।

उदाहरण के लिए: निम्नलिखित एक पूर्ण सीमा है:

           18
       /       \  
     15         30  
    /  \        /  \
  40    50    100   40
 /  \   /
8   7  9 

नोट: निम्नलिखित भी एक पूर्ण बाइनरी ट्री है:

         18
       /     \   
     15       30    
    /  \     /   \   
  40    50  100  40 

क्या आप पूर्ण बाइनरी ट्री परिभाषा के लिए एक स्रोत दे सकते हैं? यह उस विकिपीडिया पर विरोधाभास करता है जो NIST से जुड़ा है
केल्विन ली

@CalvinLi स्रोत का उल्लेख पूर्ण द्विवार्षिक TREE की परिभाषा में किया गया है। यहाँ पीडीऍफ़ का लिंक दिया गया है (pg 447 of the pdf) - o6ucs.files.wordpress.com/2012/10/…
सौरभ भाटिया

@ सौरभभटिया, अंतिम प्रतिनिधित्व पूर्ण बाइनरी ट्री के लिए भी सही है। यदि मैं गलत हूं तो मुझे सही करों। विभिन्न किस्मों के लिए एक प्रतिनिधित्व कैसे सही हो सकता है?
रोज़

10

डिस्क्लेमर- कुछ परिभाषाओं का मुख्य स्रोत विकिपीडिया है, मेरे उत्तर को बेहतर बनाने के लिए किसी भी सुझाव का स्वागत है।

यद्यपि इस पोस्ट का एक स्वीकृत उत्तर है और एक अच्छा है जो मैं अभी भी भ्रम में था और अपनी शर्तों के बीच अंतर के बारे में कुछ और स्पष्टीकरण जोड़ना चाहूंगा।

(१) पूर्ण द्वैत वृक्ष- एक पूर्ण बाइनरी ट्री एक बाइनरी ट्री है जिसमें पत्तियों के अलावा प्रत्येक नोड में दो बच्चे होते हैं। इसे सख्ती से बाइनरी ट्री भी कहा जाता है ।

यहाँ छवि विवरण दर्ज करें यहाँ छवि विवरण दर्ज करें

उपरोक्त दोनों पूर्ण या सख्ती से बाइनरी ट्री के उदाहरण हैं।

(२) पूर्ण द्विवर्षीय- अब, पूर्ण बाइनरी ट्री की परिभाषा काफी अस्पष्ट है, यह बताता है: - एक पूर्ण बाइनरी ट्री एक बाइनरी ट्री है जिसमें हर स्तर, सिवाय संभवतः अंतिम , पूरी तरह से भरा हुआ है, और सभी नोड्स के रूप में हैं जहाँ तक संभव हो छोड़ दिया। यह 1 और 2h नोड्स के बीच हो सकता है, जहां तक ​​संभव हो, अंतिम स्तर एच पर छोड़ दिया गया है

इटैलिक में लाइनों को नोटिस करें।

अस्पष्टता इटैलिक में पंक्तियों में निहित है, "संभवतः अंतिम को छोड़कर" जिसका अर्थ है कि अंतिम स्तर भी पूरी तरह से भरा हो सकता है, अर्थात इस अपवाद को हमेशा संतुष्ट नहीं होना चाहिए। यदि अपवाद नहीं होता है, तो यह बिल्कुल मेरे द्वारा पोस्ट की गई दूसरी छवि की तरह है, जिसे पूर्ण बाइनरी ट्री भी कहा जा सकता है । तो, एक सही बाइनरी ट्री भी पूर्ण और पूर्ण है, लेकिन इसके विपरीत नहीं जो एक और परिभाषा से स्पष्ट होगा जो मुझे राज्य की आवश्यकता है:

ALMOST COMPLETE BINARY TREE- जब पूर्ण बाइनरी ट्री की परिभाषा में अपवाद होता है तो इसे लगभग पूर्ण बाइनरी ट्री या लगभग पूर्ण बाइनरी ट्री कहा जाता है। यह अपने आप में केवल एक प्रकार का पूर्ण बाइनरी ट्री है, लेकिन इसे अधिक अस्पष्ट बनाने के लिए एक अलग परिभाषा आवश्यक है।

तो लगभग पूर्ण बाइनरी ट्री इस तरह दिखाई देगा, आप देख सकते हैं कि छवि नोड्स जितना संभव हो उतना बचे हुए हैं इसलिए यह पूरी तरह से बाइनरी ट्री के सबसेट की तरह है, अधिक कठोर कहने के लिए हर लगभग पूर्ण बाइनरी ट्री एक पूर्ण बाइनरी है पेड़ लेकिन इसके विपरीत नहीं। :

यहाँ छवि विवरण दर्ज करें


6

उपरोक्त उत्तरों से निष्कर्ष निकालते हुए, पूर्ण / सख्ती, पूर्ण और परिपूर्ण बाइनरी पेड़ों के बीच सटीक अंतर है

  1. फुल / स्ट्रिक्टली बाइनरी ट्री : - लीफ नोड्स को छोड़कर हर नोड में दो बच्चे होते हैं

  2. पूर्ण बाइनरी ट्री : - अंतिम स्तर को छोड़कर हर स्तर पूरी तरह से भरा हुआ है और सभी नोड्स को न्यायसंगत छोड़ दिया गया है।

  3. परफेक्ट बाइनरी ट्री : - लीफ नोड्स को छोड़कर हर नोड में दो बच्चे होते हैं और हर स्तर (अंतिम स्तर भी) पूरी तरह से भरा होता है।


2

एक द्विआधारी पेड़ पर विचार करें जिनके नोड्स एक पेड़ के फैशन में खींचे गए हैं। अब ऊपर से नीचे और बाएं से दाएं नोड्स की संख्या शुरू करें। एक पूर्ण वृक्ष में ये गुण होते हैं:

अगर n के बच्चे हैं तो सभी n n दो बच्चों से कम संख्या के हैं।

यदि n का एक बच्चा है तो उसे बायां बच्चा होना चाहिए और n के दो बच्चों की तुलना में सभी नोड्स कम होने चाहिए। इसके अलावा n से अधिक संख्या में बच्चे नहीं हैं।

यदि n के कोई बच्चे नहीं हैं, तो n के बच्चों की तुलना में अधिक नोड संख्या नहीं है।

एक ढेर का प्रतिनिधित्व करने के लिए एक पूर्ण बाइनरी ट्री का उपयोग किया जा सकता है। इसे आसानी से किसी भी अंतराल के साथ सन्निहित स्मृति में दर्शाया जा सकता है (अर्थात सभी सरणी तत्वों को किसी भी स्थान के लिए सहेजा जाता है जो अंत में मौजूद हो सकते हैं)।


2

पूर्ण बाइनरी ट्री एक पूर्ण बाइनरी ट्री है, लेकिन रिवर्स संभव नहीं है, और यदि बाइनरी की गहराई n नहीं है। पूर्ण बाइनरी ट्री में नोड्स की संख्या (2 ^ n-1) है। बाइनरी ट्री में यह आवश्यक नहीं है कि उसके दो बच्चे हों लेकिन पूर्ण बाइनरी में प्रत्येक नोड में एक या दो बच्चे नहीं हैं।


1
आप यह कड़ाई से नहीं कह सकते हैं कि "रिवर्स संभव नहीं है" वास्तव में आपकी इस धारणा को स्वीकार किए गए उत्तर में पूर्ण वृक्ष के उदाहरण में
परिभाषित

1
यदि बाइनरी की गहराई n नहीं है। पूर्ण बाइनरी ट्री में नोड्स है (2 ^ n-1): लेकिन एक पूर्ण बाइनरी ट्री परिभाषा एक ऐसा पेड़ है जहां हर नोड या तो एक पत्ती है या दो बच्चे हैं। तो अधिकतम संभव नहीं। बच्चों की संख्या (2 ^ n-1) है, लेकिन यह उससे कम हो सकती है।
मृदा

2

मूल बातें शुरू करने के लिए, विभिन्न प्रकारों को समझने के लिए स्वयं बाइनरी ट्री को समझना बहुत महत्वपूर्ण है।

एक पेड़ एक द्विआधारी पेड़ है अगर और केवल अगर: -

- इसमें एक रूट नोड है, जिसमें कोई भी बच्चा नोड्स (0 चाइल्डनॉड्स, NULL ट्री) नहीं हो सकता है

-रुट नोड में 1 या 2 बच्चे नोड हो सकते हैं। इस तरह के प्रत्येक नोड में खुद एबेंसिक ट्री बनता है 

-बच्चे के नोड्स 0, 1, 2 हो सकते हैं। ...... 2 से अधिक नहीं

-इस रूट से हर दूसरे नोड के लिए एक अनूठा रास्ता है

उदाहरण :

        X
      /    \
     X      X
          /   \
         X     X

आपकी पूछताछ में आने वाली शब्दावली:

एक बाइनरी ट्री एक पूर्ण बाइनरी ट्री है (ऊंचाई एच का, हम रूट नोड को 0 के रूप में लेते हैं) यदि और केवल यदि: -

स्तर 0 से एच -1 -1 ऊंचाई एच -1 के पूर्ण बाइनरी ट्री का प्रतिनिधित्व करते हैं

- स्तर एच -1 में एक या अधिक नोड्स में 0 या 1 बच्चा नोड हो सकता है

यदि j, k, स्तर h-1 में नोड्स हैं, तो j में k की तुलना में अधिक चाइल्ड नोड्स हैं यदि और केवल यदि j k के बाईं ओर है, अर्थात अंतिम स्तर (h) में पत्ती नोड्स गायब हो सकते हैं, हालाँकि जो वर्तमान में मौजूद हैं बाईं ओर स्थानांतरित कर दिया जाए

उदाहरण :

                          X
                     /          \
                   /              \
                 /                  \
                X                    X
             /     \              /     \
           X       X             X       X
         /   \   /   \         /   \    /  \ 
        X    X   X   X        X    X    X   X 

एक द्विआधारी वृक्ष एक कड़ाई से द्विआधारी वृक्ष है अगर और केवल अगर: -

प्रत्येक नोड में ठीक दो बच्चे नोड्स या कोई नोड्स होते हैं

उदाहरण :

         X
       /   \
      X     X 
          /   \
         X      X
        / \    / \ 
       X   X  X   X 

एक बाइनरी ट्री एक पूर्ण बाइनरी ट्री है यदि और केवल यदि: -

प्रत्येक गैर पत्ती नोड में दो बच्चे नोड होते हैं

सभी पत्ती नोड्स समान स्तर पर हैं

उदाहरण :

                          X
                     /          \
                   /              \
                 /                  \
                X                    X
             /     \              /     \
           X       X             X       X
         /   \   /   \         /   \    /  \ 
        X    X   X   X        X    X    X   X 
      /  \  / \ / \ / \      / \  / \  / \ / \ 
     X   X X  X X X X X     X  X  X X  X X X X 

आपको यह भी पता होना चाहिए कि एक सही बाइनरी ट्री क्या है?

एक द्विआधारी वृक्ष एक सही द्विआधारी वृक्ष है यदि और केवल यदि: -

- एक पूर्ण बाइनरी ट्री है

- सभी पत्ती नोड्स समान स्तर पर हैं

उदाहरण :

                          X
                     /          \
                   /              \
                 /                  \
                X                    X
             /     \              /     \
           X       X             X       X
         /   \   /   \         /   \    /  \ 
        X    X   X   X        X    X    X   X 
      /  \  / \ / \ / \      / \  / \  / \ / \ 
     X   X X  X X X X X     X  X  X X  X X X X 

खैर, मुझे खेद है कि मैं चित्र पोस्ट नहीं कर सकता क्योंकि मेरे पास 10 प्रतिष्ठा नहीं है। आशा है कि यह आपकी और दूसरों की मदद करेगा!


2

बाइनरी ट्री के साथ मेरे सीमित अनुभव में, मुझे लगता है:

  1. सख्ती से बाइनरी ट्री : पत्ती नोड्स को छोड़कर हर नोड में दो बच्चे हैं या केवल एक रूट नोड है।
  2. पूर्ण बाइनरी ट्री : 2 ^ (एच + 1) -1 नोड्स वाले कड़ाई से (या बिल्कुल) एच का एक बाइनरी ट्री , यह स्पष्ट है कि हर स्तर पर सबसे अधिक नोड्स हैं। या संक्षेप में एक सख्त बाइनरी ट्री जहां सभी पत्ती नोड्स समान स्तर पर हैं।
  3. पूरा बाइनरी ट्री : यह एक बाइनरी ट्री है जिसमें हर स्तर, संभवतः अंतिम को छोड़कर, पूरी तरह से भरा हुआ है, और सभी नोड्स यथासंभव संभव हैं।

1
आप पूर्ण बाइनरी ट्री के लिए परिभाषा गलत हैं, यह एक सही बाइनरी ट्री की परिभाषा है। एक पूर्ण बाइनरी ट्री एक सख्ती से बाइनरी ट्री का पर्याय है। (स्रोत: कड़ाई से बाइनरी ट्री देखें: संकाय ।cs.niu.edu / ~mcmahon / CS241 / Notes / bintree.html ) (स्रोत: संपूर्ण द्विआधारी पेड़ देखें: स्लाइडशेयर.net / ajaykumarc137151-… )
Keego

1
हे भगवान, मैं अभी उलझन में हूं, मैं यह सुनिश्चित करूंगा। बहुत धन्यवाद।
बर्टकिंग

1
कोई बात नहीं :) नीचे दिए गए @Lotus द्वारा उत्तर देखें , उन्होंने इसे nailed किया। मैंने इसे दर्शाने के लिए आपके उत्तर के लिए संपादन की सिफारिश की है।
कीगो

1

आइए हम ऊंचाई tree h ’के एक द्विआधारी वृक्ष पर विचार करें। एक बाइनरी ट्री को पूर्ण बाइनरी ट्री कहा जाता है यदि सभी पत्तियां अनुक्रम में किसी भी लापता संख्या के बिना ऊंचाई 'एच' या 'एच -1' पर मौजूद हैं।

                   1
                 /   \
              2       3
            /    \         
         4        5

यह एक पूर्ण बाइनरी ट्री है।

                   1
                 /   \
              2       3
            /        /    
         4         6    

यह एक पूर्ण बाइनरी ट्री नहीं है क्योंकि क्रम में 5 नंबर का नोड गायब है


0

पूर्ण बाइनरी ट्री भरा हुआ है यदि प्रत्येक नोड में 0 या 2 बच्चे हैं। पत्ती नोड्स की पूर्ण बाइनरी संख्या में आंतरिक नोड्स की संख्या प्लस 1 एल = एल + 1 है


0

पूरा बाइनरी ट्री: सभी स्तर पूरी तरह से निचले स्तर को छोड़कर पूरी तरह से भरे हुए हैं और एक मुख्य बात यह है कि सभी पत्ती तत्वों को बच्चे को छोड़ देना चाहिए। सख्त बाइनरी ट्री: इस पेड़ में प्रत्येक गैर-पत्ती के नोड का कोई बच्चा नहीं होता है और न ही दाएं या बाएं। पूर्ण बाइनरी ट्री: प्रत्येक नोड में शून्य बच्चा या दो बच्चे हैं (एकल बच्चा नहीं होने पर)।


> इस पेड़ में प्रत्येक गैर-पत्ती वाले नोड का कोई बच्चा नहीं होता है और न ही बाएं या दाएं गैर-पत्ती नोड में कम से कम एक बच्चे होते हैं, अन्यथा यह पत्ती नोड है
nkrivenko
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.