हीप डेटा संरचनाओं का उपयोग प्राथमिकता कतार का प्रतिनिधित्व करने के लिए किया जा सकता है। पायथन में यह हेपैक मॉड्यूल में उपलब्ध है। यहां यह एक मिन-हीप बनाता है। इसलिए जब प्राथमिकता 1 होती है, तो यह सर्वोच्च प्राथमिकता का प्रतिनिधित्व करती है। जब नए तत्व डाले जाते हैं, तो हीप संरचना अपडेट हो जाती है।
इस मॉड्यूल का उपयोग करने के लिए, हमें इसका उपयोग करके आयात करना चाहिए -
import heapq
ढेर से संबंधित कुछ ऑपरेशन हैं। ये हैं -
विधि heapq.heapify(iterable)
इसका उपयोग एक चलने योग्य डेटासेट को डेटा संरचना को ढेर करने के लिए परिवर्तित करने के लिए किया जाता है।
विधि heapq.heappush(ढेर, तत्व)
इस विधि का उपयोग तत्व को ढेर में सम्मिलित करने के लिए किया जाता है। उसके बाद पूरे हीप स्ट्रक्चर को फिर से ढेर करें।
विधि heapq.heappop(ढेर)
इस विधि का उपयोग ढेर के ऊपर से तत्व को वापस करने और हटाने के लिए किया जाता है और बाकी तत्वों पर हीपाइफाई करने के लिए किया जाता है।
विधि heapq.heappushpop(ढेर, तत्व)
इस विधि का उपयोग एक कथन में तत्व डालने और पॉप करने के लिए किया जाता है..
विधि heapq.heapreplace(ढेर, तत्व)
इस विधि का उपयोग एक कथन में तत्व डालने और पॉप करने के लिए किया जाता है। यह तत्व को ढेर की जड़ से हटा देता है, फिर तत्व को ढेर में सम्मिलित करता है।
विधि heapq.nसबसे बड़ा(n, चलने योग्य, कुंजी=कोई नहीं)
इस विधि का उपयोग ढेर से n सबसे बड़े तत्व को वापस करने के लिए किया जाता है।
विधि heapq.nsmallest(n, iterable, key=None)
इस विधि का उपयोग ढेर से n सबसे छोटे तत्व को वापस करने के लिए किया जाता है।
उदाहरण कोड
import heapq my_list = [58, 41, 12, 17, 89, 65, 23, 20, 10, 16, 17, 19] heapq.heapify(my_list) print(my_list) heapq.heappush(my_list, 7) print(my_list) print('Popped Element: ' + str(heapq.heappop(my_list))) print(my_list) new_iter = list() new_iter = heapq.nlargest(4, my_list) print(new_iter)
आउटपुट
[10, 16, 12, 17, 17, 19, 23, 20, 41, 89, 58, 65] [7, 16, 10, 17, 17, 12, 23, 20, 41, 89, 58, 65, 19] Popped Element: 7 [10, 16, 12, 17, 17, 19, 23, 20, 41, 89, 58, 65] [89, 65, 58, 41]