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

C++ में द्विपद हीप का मेमोरी प्रतिनिधित्व

द्विपद वृक्ष क्या है?

द्विपद वृक्ष एक क्रमबद्ध वृक्ष डेटा संरचना है, मान लीजिए B0 में एक नोड होता है जबकि Bk के रूप में दर्शाया गया द्विपद वृक्ष दो द्विपद वृक्षों यानी Bk-1 से मिलकर होता है जो एक साथ जुड़े होते हैं। एक द्विपद वृक्ष की जड़ दूसरे द्विपद वृक्ष की जड़ का बायां बच्चा होती है। द्विपद वृक्ष का उपयोग ज्यादातर संपत्ति या स्टॉक के मौलिक और तकनीकी विश्लेषण के लिए किया जाता है।

द्विपद वृक्ष के नोड्स किसी संपत्ति के आंतरिक मूल्य को दर्शाते हैं। यह बाजार के निवेशकों या खरीदारों को निवेश के लिए सही समय और मूल्य का विश्लेषण करने में मदद करता है।

द्विपद हीप क्या है?

द्विपद हीप एक डेटा संरचना है जो कई द्विपद वृक्षों के संयोजन से बनती है।

द्विपद हीप H के गुण हैं:

  • H में प्रत्येक द्विपद वृक्ष हीप-क्रमबद्ध है। इसलिए एक नोड की कुंजी उसके माता-पिता की कुंजी से बड़ी या बराबर होती है।
  • H में अधिकतम एक द्विपद वृक्ष होता है, जिसकी जड़ की दी गई डिग्री होती है।

द्विपद हीप का उदाहरण:

C++ में द्विपद हीप का मेमोरी प्रतिनिधित्व

द्विपद हीप नोड का मेमोरी प्रतिनिधित्व

बाइनरी हीप के प्रत्येक नोड को मेमोरी में 5 फील्ड्स के साथ दर्शाया जाता है:

  • पेरेंट पॉइंटर: यह एक पेरेंट नोड का पता संग्रहीत करेगा ताकि इसे बाइनरी हीप संरचना में अन्य नोड्स से जोड़ा जा सके।
  • कुंजी: यह वह डेटा या कुंजी संग्रहीत करेगा जो एक नोड धारण कर रहा है।
  • डिग्री: यह बाइनरी हीप नोड की डिग्री या स्तर को निर्दिष्ट करेगा।
  • बायां बाल पॉइंटर: यह तत्काल बाएं बच्चे का पता संग्रहीत करेगा ताकि इसे लागू होने पर बाएं नोड से जोड़ा जा सके।
  • सिबलिंग पॉइंटर: यह तत्काल सिबलिंग का पता संग्रहीत करेगा।

C++ में द्विपद हीप का मेमोरी प्रतिनिधित्व

उदाहरण के लिए:

1. एकल नोड मेमोरी प्रतिनिधित्व

C++ में द्विपद हीप का मेमोरी प्रतिनिधित्व

2. पेरेंट और चाइल्ड नोड मेमोरी प्रतिनिधित्व

C++ में द्विपद हीप का मेमोरी प्रतिनिधित्व

3. सिबलिंग नोड्स मेमोरी प्रतिनिधित्व

C++ में द्विपद हीप का मेमोरी प्रतिनिधित्व

  1. C++ में ट्री डायमीटर C++ में ट्री डायमीटर

    मान लीजिए हमारे पास एक अनडायरेक्टेड ट्री है; हमें इसका डायमीटर ढूंढना है - उस ट्री में सबसे लंबे पथ में एज की संख्या उस ट्री का डायमीटर है। यहां ट्री को एज लिस्ट के रूप में दिया गया है जहां edges[i] = [u, v] नोड्स u और v के बीच एक बायडायरेक्शनल एज है। प्रत्येक नोड के लेबल सेट {0, 1, ..., edges.lengt

  1. C++ में बाइनरी ट्री प्रूनिंग C++ में बाइनरी ट्री प्रूनिंग

    मान लीजिए हमारे पास एक बाइनरी ट्री का हेड नोड root है, जहाँ प्रत्येक नोड का मान या तो 0 या 1 है। हमें वही ट्री लौटाना है जहाँ हर वह सबट्री हटा दी गई हो जिसमें 1 नहीं है। उदाहरण: इनपुट ट्री [1,1,0,1,1,0,1,0] के लिए, आउटपुट ट्री में केवल वही नोड्स रहेंगे जिनके सबट्री में कम से कम एक 1 है। पोस्ट-ऑर्

  1. C++ में बाइनोमियल हीप C++ में बाइनोमियल हीप

    बाइनोमियल हीप को बाइनरी हीप के विस्तार के रूप में परिभाषित किया गया है जो बाइनरी हीप द्वारा प्रदान किए गए अन्य ऑपरेशन्स के साथ तेज़ मर्ज या यूनियन ऑपरेशन प्रदान करता है।एक बाइनोमियल हीप को बाइनोमियल ट्रीज़ के संग्रह के रूप में माना जाता है।बाइनोमियल ट्री क्या है?k क्रम का एक बाइनोमियल ट्री k-1 क्रम