হিপ কিউ একটি স্পেশাল ট্রি স্ট্রাকচার যেখানে প্রতিটি প্যারেন্ট নোড তার চাইল্ড নোড থেকে ছোট বা সমান। পাইথনে এটি heapq মডিউল দিয়ে ইমপ্লিমেন্ট করা হয়। প্রায়োরিটি কিউ ইমপ্লিমেন্টেশনে এটি খুব কাজে লাগে যেখানে বেশি ওয়েইটवाले আইটেমকে বেশি প্রায়োরিটি দেওয়া হয়।
হিপ তৈরি করা
heapq লাইব্রেরির ফাংশনগুলো:
- heapify - রেগুলার লিস্টকে হিপে রূপান্তর করে। সবচেয়ে ছোট এলিমেন্ট ইনডেক্স ০-এ চলে যায়।
- heappush - হিপে এলিমেন্ট যোগ করে হিপ প্রপার্টি রক্ষা করে।
- heappop - হিপ থেকে সবচেয়ে ছোট এলিমেন্ট বের করে।
- heapreplace - সবচেয়ে ছোট এলিমেন্টকে নতুন ভ্যালু দিয়ে রিপ্লেস করে।
উদাহরণ: হিপ তৈরি
import heapq
H = [21, 1, 45, 78, 3, 5]
heapq.heapify(H)
print(H) # [1, 3, 5, 78, 21, 45]
উদাহরণ: হিপে ইনসার্ট
heapq.heappush(H, 8)
print(H) # [1, 3, 5, 78, 21, 45, 8]
উদাহরণ: হিপ থেকে রিমুভ
heapq.heappop(H)
print(H) # [3, 21, 5, 78, 45]
উদাহরণ: হিপে রিপ্লেস
heapq.heapreplace(H, 6)
print(H) # [3, 6, 5, 78, 21, 45]