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

पायथन में ढेर कतार (या ढेर)

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

एक ढेर बनाएं

पाइथॉन की इनबिल्ट लाइब्रेरी का उपयोग करके एक हीप कतार बनाई जाती है जिसका नाम हीप है। इस पुस्तकालय में ढेर डेटा संरचना पर विभिन्न संचालन करने के लिए प्रासंगिक कार्य हैं। नीचे इन कार्यों की सूची दी गई है।

  • ढेर करना - यह फ़ंक्शन एक नियमित सूची को एक ढेर में परिवर्तित करता है। परिणामी ढेर में सबसे छोटा तत्व इंडेक्स स्थिति 0 पर धकेल दिया जाता है। लेकिन शेष डेटा तत्वों को क्रमबद्ध नहीं किया जाता है।
  • हीपपुश - यह फ़ंक्शन वर्तमान हीप को बदले बिना हीप में एक तत्व जोड़ता है।
  • हीपॉप - यह फ़ंक्शन हीप से सबसे छोटा डेटा तत्व लौटाता है।
  • हीप्रेप्लेस - यह फ़ंक्शन सबसे छोटे डेटा तत्व को फ़ंक्शन में दिए गए नए मान से बदल देता है।

ढेर बनाना

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

उदाहरण

import heapqH =[21,1,45,78,3,5]# Elementsheapq.heapify(H)print(H) को पुनर्व्यवस्थित करने के लिए heapify का उपयोग करें

आउटपुट

जब उपरोक्त कोड निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -

[1, 3, 5, 78, 21, 45]

ढेर में सम्मिलित करना

डेटा तत्व को ढेर में सम्मिलित करना हमेशा अंतिम अनुक्रमणिका में तत्व जोड़ता है। लेकिन आप नए जोड़े गए तत्व को पहली अनुक्रमणिका में लाने के लिए फिर से हेपिफाई फ़ंक्शन लागू कर सकते हैं, यदि यह मूल्य में सबसे छोटा है। नीचे दिए गए उदाहरण में हम संख्या 8 डालते हैं।

उदाहरण

आयात heapqH =[21,1,45,78,3,5]# एक heapheapq.heapify(H)print(H)# में गुप्त तत्व जोड़ें।> 

आउटपुट

जब उपरोक्त कोड निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -

[1, 3, 5, 78, 21, 45][1, 3, 5, 78, 21, 45, 8]

ढेर से निकाला जा रहा है

आप इस फ़ंक्शन का उपयोग करके तत्व को पहली अनुक्रमणिका पर हटा सकते हैं। नीचे दिए गए उदाहरण में फ़ंक्शन इंडेक्स स्थिति 1 पर तत्व को हमेशा हटा देगा।

उदाहरण

आयात heapqH =[21,1,45,78,3,5]# heapheapq.heapify(H)print(H)# बनाएं heapheapq.heappop(H)print(H) से तत्व निकालें

आउटपुट

जब उपरोक्त कोड निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -

[1, 3, 5, 78, 21, 45][3, 21, 5, 78, 45]

ढेर में बदलना

हेप्रेप्लेस फ़ंक्शन हमेशा हीप के सबसे छोटे तत्व को हटाता है और नए आने वाले तत्व को किसी ऐसे स्थान पर सम्मिलित करता है जो किसी भी क्रम से तय नहीं होता है।

उदाहरण

आयात heapqH =[21,1,45,78,3,5]# heapheapq बनाएँ।> 

आउटपुट

जब उपरोक्त कोड निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -

[1, 3, 5, 78, 21, 45][3, 6, 5, 78, 21, 45]

  1. ढेर की जाँच करने का कार्यक्रम पायथन में अधिकतम ढेर बना रहा है या नहीं

    मान लीजिए कि हमारे पास ढेर के पेड़ का प्रतिनिधित्व करने वाली एक सूची है। जैसा कि हम जानते हैं कि हीप एक पूर्ण बाइनरी ट्री है। हमें यह जांचना है कि तत्व अधिकतम ढेर बना रहे हैं या नहीं। जैसा कि हम जानते हैं कि अधिकतम ढेर के लिए प्रत्येक तत्व अपने दोनों बच्चों से बड़ा होता है। इसलिए, यदि इनपुट nums =[

  1. हीप सॉर्ट के लिए पायथन प्रोग्राम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक सरणी दी गई है, हमें इसे हेपसॉर्ट की अवधारणा का उपयोग करके क्रमबद्ध करने की आवश्यकता है। यहां हम अधिकतम तत्व को अंत में रखते हैं। यह तब तक दोहराया जाता है जब तक कि सरणी क्रमबद्ध न हो जाए। आइए अब नीचे दिए गए

  1. पायथन हीप कतार एल्गोरिथ्म

    हीप डेटा संरचनाओं का उपयोग प्राथमिकता कतार का प्रतिनिधित्व करने के लिए किया जा सकता है। पायथन में यह हेपैक मॉड्यूल में उपलब्ध है। यहां यह एक मिन-हीप बनाता है। इसलिए जब प्राथमिकता 1 होती है, तो यह सर्वोच्च प्राथमिकता का प्रतिनिधित्व करती है। जब नए तत्व डाले जाते हैं, तो हीप संरचना अपडेट हो जाती है।