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

मेल करने योग्य प्राथमिकता कतार और तिरछा ढेर

मेल करने योग्य प्राथमिकता कतार

परिभाषा

एक रैंडमाइज्ड मेल्डेबल हीप (मेल्डेबल हीप या रैंडमाइज्ड मेल्डेबल प्रायोरिटी क्यू) को एक प्राथमिकता कतार आधारित डेटा संरचना के रूप में परिभाषित किया गया है जिसमें अंतर्निहित संरचना भी एक हीप-ऑर्डर बाइनरी ट्री है। हालांकि, अंतर्निहित बाइनरी ट्री के आकार पर कोई कठोर और तेज़ नियम नहीं हैं।

फायदे

  • इस दृष्टिकोण में कई सुविधाएं हैं यानी समान डेटा संरचनाओं पर लाभ।
  • यह अन्य डेटा संरचनाओं की तुलना में सरल दृष्टिकोण प्रदान करता है।
  • रैंडमाइज्ड मेल्डेबल हीप के लिए सभी ऑपरेशन लागू करना आसान है और उनकी जटिलता सीमा में स्थिर कारक छोटे हैं।
  • संतुलन की स्थिति को संरक्षित करने की कोई आवश्यकता नहीं है और नोड्स के भीतर किसी उपग्रह जानकारी की आवश्यकता नहीं है।
  • अंत में, यह संरचना सबसे खराब स्थिति में अच्छी दक्षता प्रदर्शित करती है। अधिकतर प्रत्येक व्यक्तिगत ऑपरेशन का निष्पादन समय उच्च संभावना के साथ लॉगरिदमिक होता है।

तिरछी ढेर

एक तिरछा ढेर (या स्व-समायोजन हीप) को एक बाइनरी ट्री के रूप में कार्यान्वित ढेर डेटा संरचना के रूप में परिभाषित किया गया है।

तिरछे ढेर फायदेमंद होते हैं क्योंकि वे द्विआधारी ढेर की तुलना में अधिक तेजी से विलय करने में सक्षम होते हैं।

बाइनरी ढेर के विपरीत, कोई संरचनात्मक बाधा नहीं है, इसलिए इस बात की कोई गारंटी नहीं है कि पेड़ की ऊंचाई लॉगरिदमिक है।

केवल दो शर्तें पूरी होनी चाहिए -

  • सामान्य ढेर क्रम वहां बनाए रखा जाना चाहिए (रूट न्यूनतम है और वही उप-वृक्षों के लिए पुनरावर्ती सत्य है), लेकिन संतुलित संपत्ति (अंतिम को छोड़कर सभी स्तर पूर्ण होना चाहिए) की आवश्यकता नहीं है।
  • स्केव हीप्स में मुख्य ऑपरेशन केवल मर्ज है। हम केवल मर्ज से जुड़े अन्य ऑपरेशन जैसे इन्सर्ट, एक्सट्रैक्टमिन (), आदि को लागू कर सकते हैं।

उदाहरण

तिरछा ढेर 1 होने दें

मेल करने योग्य प्राथमिकता कतार और तिरछा ढेर

माना जाने वाला दूसरा ढेर

मेल करने योग्य प्राथमिकता कतार और तिरछा ढेर

और हम अंतिम मर्ज किए गए पेड़ को

. के रूप में प्राप्त करते हैं

मेल करने योग्य प्राथमिकता कतार और तिरछा ढेर

पुनरावर्ती मर्ज प्रक्रिया

मर्ज (a1, a2) मान लें कि a1 और a2 मर्ज किए जाने वाले दो मिनट के तिरछे ढेर हैं। मान लीजिए a1 का रूट a2 के रूट से छोटा है (यदि छोटा नहीं है, तो हम इसे प्राप्त करने के लिए स्वैप कर सकते हैं)। हम a1->left और a1->right.a1->left =merge(a2, a1->left) को स्वैप करते हैं। पूर्व> 
  1. न्यूनतम-अधिकतम ढेर

    एक न्यूनतम-अधिकतम ढेर को एक पूर्ण बाइनरी ट्री के रूप में परिभाषित किया जाता है जिसमें वैकल्पिक न्यूनतम (या सम) और अधिकतम (या विषम) स्तर होते हैं। सम स्तरों को उदाहरण के लिए 0, 2, 4, आदि के रूप में दर्शाया जाता है, और विषम स्तरों को 1, 3, 5, आदि के रूप में दर्शाया जाता है। हम अगले बिंदुओं पर विचार क

  1. ढेर जोड़ना

    पेयरिंग हीप को अपेक्षाकृत आसान कार्यान्वयन और शानदार व्यावहारिक परिशोधन प्रदर्शन के साथ हीप डेटा संरचना के प्रकार के रूप में परिभाषित किया गया है। पेयरिंग हीप्स हीप-आर्डर्ड मल्टीवे ट्री संरचनाएं हैं, और इन्हें सरलीकृत फाइबोनैचि हीप्स के रूप में दर्शाया जा सकता है। प्राइम के एमएसटी एल्गोरिथम जैसे ए

  1. पायथन में स्टैक और क्यू के रूप में सूची का उपयोग करना

    इस लेख में, हम पायथन 3.x में स्टैक और कतार संरचनाओं के बारे में जानेंगे। या जल्दी। यहां हम इन डेटा संरचनाओं के कामकाज और संशोधन पर चर्चा करेंगे - इसमें शामिल हैं - इंसर्शन ऑपरेशन (पुश, एनक्यू) हटाने की कार्रवाई (पॉप, डीक्यू) डिस्प्ले / ट्रैवर्सिंग ऑपरेशन आवश्यकताएं :सूची और सूची संचालन संबंधित