हीप कतार एक विशेष वृक्ष संरचना है जिसमें प्रत्येक पैरेंट नोड अपने चाइल्ड नोड से कम या उसके बराबर होता है। पाइथिन में इसे हीपक मॉड्यूल का उपयोग करके कार्यान्वित किया जाता है। यह बहुत उपयोगी है प्राथमिकता कतारों को लागू करना जहां उच्च भार वाले कतार आइटम को प्रसंस्करण में अधिक प्राथमिकता दी जाती है।
एक ढेर बनाएं
पाइथॉन की इनबिल्ट लाइब्रेरी का उपयोग करके हीप कतार बनाई जाती है जिसका नाम हीप है। इस पुस्तकालय में ढेर डेटा संरचना पर विभिन्न संचालन करने के लिए प्रासंगिक कार्य हैं। नीचे इन कार्यों की सूची दी गई है।
- heapify - यह फ़ंक्शन एक नियमित सूची को एक ढेर में परिवर्तित करता है। परिणामी ढेर में सबसे छोटा तत्व इंडेक्स स्थिति 0 पर धकेल दिया जाता है। लेकिन शेष डेटा तत्वों को क्रमबद्ध नहीं किया जाता है।
- heappush - यह फ़ंक्शन वर्तमान हीप को बदले बिना हीप में एक तत्व जोड़ता है।
- heappop - यह फ़ंक्शन हीप से सबसे छोटा डेटा तत्व लौटाता है।
- heapreplace - यह फ़ंक्शन सबसे छोटे डेटा तत्व को फ़ंक्शन में दिए गए नए मान से बदल देता है।
ढेर बनाना
हीपिफ़ फ़ंक्शन वाले तत्वों की सूची का उपयोग करके एक हीप बनाया जाता है। नीचे दिए गए उदाहरण में हम तत्वों की एक सूची प्रदान करते हैं और हीपिफ़ फ़ंक्शन सबसे छोटे तत्व को पहले स्थान पर लाने वाले तत्वों को पुनर्व्यवस्थित करता है।
उदाहरण
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]