Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

2-3 पेड़ - सी++ में डेटा संरचनाएं और एल्गोरिदम

एक 2-3 पेड़ डेटा संरचनाओं में एक प्रकार का पेड़ है जिसमें पेड़ का प्रत्येक नोड या तो 2 नोड होता है

या 3 नोड्स। यह एक विशेष प्रकार का B-Tree . है आदेश 3 के साथ।

ट्री में 2 नोड वह होता है जिसमें एक डेटा भाग और दो चाइल्ड नोड होते हैं।

ट्री में 3 नोड वह होता है जिसमें दो डेटा भाग और तीन चाइल्ड नोड होते हैं।

2-3 पेड़ - सी++ में डेटा संरचनाएं और एल्गोरिदम

अंजीर:- एक 2-3 पेड़

एक 2-3 पेड़ के गुण:-

  • प्रत्येक आंतरिक नोड या तो 2 नोड या 3 नोड होता है।

  • एक डेटा भाग वाला नोड ठीक 2 बच्चों वाला 2 नोड हो सकता है या बिना बच्चों वाला पत्ता नोड हो सकता है।

  • दो डेटा भागों वाला एक नोड केवल 3 बच्चों वाला 3 नोड हो सकता है।

  • सभी लीफ नोड्स हमेशा एक ही स्तर पर होते हैं।

  • एक 2-3 पेड़ हमेशा एक ऊंचाई संतुलित पेड़ होता है।

  • 2-3 पेड़ में खोज अभियान तेज और कुशल होते हैं।

2 नोड:-

  • ठीक दो बच्चे।

  • बाएं बच्चे का वजन छोटा है।

  • अधिक वजन वाला दायां बच्चा।

  • बिना बच्चे वाला पत्ता नोड हो सकता है।

2-3 पेड़ - सी++ में डेटा संरचनाएं और एल्गोरिदम

3 नोड:-

  • ठीक तीन बच्चे।

  • 2 डेटा मान।

  • बाएं बच्चे का वजन बाएं डेटा मान से छोटा है।

  • दोनों डेटा मानों के बीच वजन वाला मध्य बच्चा।

  • सही डेटा मान से अधिक वजन वाला सही बच्चा।

  • कभी भी लीफ नोड नहीं हो सकता।

2-3 पेड़ - सी++ में डेटा संरचनाएं और एल्गोरिदम

एक 2-3 पेड़ में संचालन:-

1. 2-3 पेड़ में खोज रहे हैं

  • डेटा को सॉर्ट करते समय बाइनरी सर्च ट्री में सर्च ऑपरेशन के समान।

  • 2-3 पेड़ में X खोजने के लिए।

  • अगर पेड़ खाली है → झूठी वापसी करें

  • यदि हम रूट नोड तक पहुँच जाते हैं तो असत्य लौटाएँ (नहीं मिला)

  • यदि X बाएँ डेटा भाग से छोटा है, तो बाएँ उप-भाग खोजें

  • यदि X बाएँ डेटा से बड़ा है और दाएँ डेटा से अधिक है, तो मध्य सबट्री खोजें।

  • अगर X सही डेटा भाग से बड़ा है, तो दायां सबट्री खोजें।

2-3 पेड़ - सी++ में डेटा संरचनाएं और एल्गोरिदम

2. 2-3 पेड़ में एक नोड सम्मिलित करना

  • 2-3 पेड़ में X डालने के लिए।

  • अगर पेड़ खाली है → X को जड़ के रूप में जोड़ें।

  • X की सही स्थिति खोजें और इसे लीफ नोड के रूप में जोड़ें।

  • यदि एक डेटा भाग के साथ एक लीफ नोड है, तो X को इसके साथ जोड़ें और लीफ नोड 2 - नोड बन जाता है।

  • यदि लीफ नोड में दो डेटा भाग हैं, तो X जोड़ें। अस्थायी 3-नोड्स को विभाजित करें और सॉर्टिंग क्रम के अनुसार डेटा को पैरेंट नोड्स में स्थानांतरित करें।

2-3 पेड़ बनाएं और नोड्स को क्रम में जोड़ें → 10, 5, 8, 15, 23, 21

2-3 पेड़ - सी++ में डेटा संरचनाएं और एल्गोरिदम

3. 2-3 पेड़ में एक नोड को हटाना

  • 2-3 ट्री में X को मिटाने के लिए।

  • अगर पेड़ खाली है तो झूठी वापसी करें।

  • X की स्थिति खोजें और उसे हटा दें, फिर पेड़ को समायोजित करें।

  • यदि X 3 नोड का हिस्सा है तो X को हटा दें और बाएँ मान और मध्य मान को समायोजित करें। यदि आवश्यक हो तो नोड के पूर्वज के बाएँ और मध्य मान को भी समायोजित करें।

  • यदि X 2 नोड का हिस्सा है तो पेड़ को पुनरावर्ती तरीके से समायोजित और विभाजित करें और नोड्स को क्रमबद्ध क्रम में व्यवस्थित करें।


  1. सी/सी++ में 2-3 पेड़ (खोजें और डालें)?

    एक 2-3 पेड़ को ट्री डेटा संरचना के रूप में परिभाषित किया जाता है, जहां बच्चों (आंतरिक नोड) वाले प्रत्येक नोड में या तो दो बच्चे (2-नोड) के साथ-साथ एक डेटा तत्व या तीन बच्चे (3-नोड्स) और साथ ही दो डेटा होते हैं। तत्व। परिभाषाएं हम कहते हैं कि एक आंतरिक नोड एक 2-नोड है यदि इसमें एक डेटा तत्व और दो

  1. डेटा संरचनाओं में बाइनरी ट्री ट्रैवर्सल

    इस खंड में हम बाइनरी सर्च ट्री में मौजूद ट्रैवर्स कीज़ के लिए अलग-अलग ट्रैवर्सल एल्गोरिदम देखेंगे। ये ट्रैवर्सल इनऑर्डर ट्रैवर्सल, प्रीऑर्डर ट्रैवर्सल, पोस्टऑर्डर ट्रैवर्सल और लेवल ऑर्डर ट्रैवर्सल हैं। मान लीजिए हमारे पास एक ऐसा पेड़ है - इनऑर्डर ट्रैवर्सल अनुक्रम इस तरह होगा - 5 8 10 15 16 20 2

  1. डेटा संरचनाओं में बाइनरी पेड़ और गुण

    इस खंड में हम एक बाइनरी ट्री डेटा संरचना के कुछ महत्वपूर्ण गुण देखेंगे। मान लीजिए हमारे पास इस तरह का एक बाइनरी ट्री है। कुछ गुण हैं - स्तर l पर नोड्स की अधिकतम संख्या $2^{l-1}$ होगी। यहां स्तर रूट से नोड तक पथ पर नोड्स की संख्या है, जिसमें रूट भी शामिल है। हम विचार कर रहे हैं कि जड़ का स्तर 1 ह