C++ STL हीप ऑपरेशन्स
C++ STL में <algorithm> हेडर के तहत हीप ऑपरेशन्स प्रदान किए जाते हैं। ये एक वेक्टर (या रैंडम-एक्सेस कंटेनर) पर काम करते हैं।
1. make_heap
रेंज को हीप में बदलता है (डिफ़ॉल्ट मैक्स-हीप)।
vectorheap = {33, 43, 53, 38, 28}; make_heap(heap.begin(), heap.end()); cout << "Top: " << heap.front(); // 53
2. push_heap / pop_heap
इंसर्शन/डिलीशन के बाद हीप प्रॉपर्टी रिस्टोर करते हैं।
heap.push_back(60); push_heap(heap.begin(), heap.end()); // 60 इन्सर्ट pop_heap(heap.begin(), heap.end()); // मैक्स हटाएं heap.pop_back();
3. sort_heap
हीप को आरोही क्रम में सॉर्ट करता है (हीप प्रॉपर्टी नष्ट हो जाती है)।
sort_heap(heap.begin(), heap.end()); // अब heap सॉर्टेड है
4. is_heap / is_heap_until
चेक करें कि रेंज हीप है या नहीं, और कहां तक।
is_heap(heap.begin(), heap.end()) // bool auto it = is_heap_until(heap.begin(), heap.end()); // [begin, it) हीप है
पूर्ण उदाहरण
#includeusing namespace std; int main() { vector heap = {33, 43, 53, 38, 28}; make_heap(heap.begin(), heap.end()); cout << "Top: " << heap.front() << endl; // 53 heap.push_back(60); push_heap(heap.begin(), heap.end()); cout << "After insert: " << heap.front() << endl; // 60 pop_heap(heap.begin(), heap.end()); heap.pop_back(); cout << "After delete: " << heap.front() << endl; // 53 sort_heap(heap.begin(), heap.end()); // अब सॉर्टेड: 28 33 38 43 53 }
नोट
यह आर्टिकल C++ के बारे में है, पायथन का नहीं। पायथन में heapq मॉड्यूल मिन-हीप प्रदान करता है।