কম্পিউটার

পাইথনে হিপ কিউ (বা হেপকিউ) কি?


Heap queue হল একটি বিশেষ ট্রি স্ট্রাকচার যেখানে প্রতিটি প্যারেন্ট নোড তার চাইল্ড নোডের চেয়ে কম বা সমান। পাইথিনে এটি heapq মডিউল ব্যবহার করে প্রয়োগ করা হয়। অগ্রাধিকার সারিগুলি বাস্তবায়ন করা খুবই দরকারী যেখানে উচ্চ ওজন সহ সারি আইটেম প্রক্রিয়াকরণে আরও অগ্রাধিকার দেওয়া হয়।

একটি স্তূপ তৈরি করুন

heapq নামে পাইথনের অন্তর্নির্মিত লাইব্রেরি ব্যবহার করে একটি হিপ কিউ তৈরি করা হয়েছে। এই লাইব্রেরিতে হিপ ডেটা স্ট্রাকচারের উপর বিভিন্ন ক্রিয়াকলাপ চালানোর জন্য প্রাসঙ্গিক ফাংশন রয়েছে। নীচে এই ফাংশনগুলির একটি তালিকা রয়েছে৷

  • heapify - এই ফাংশনটি একটি নিয়মিত তালিকাকে একটি হিপে রূপান্তর করে। ফলস্বরূপ হিপে ক্ষুদ্রতম উপাদানটি সূচক অবস্থান 0-এ ঠেলে দেওয়া হয়। তবে বাকি ডেটা উপাদানগুলি অগত্যা সাজানো হয় না।
  • heappush − এই ফাংশনটি বর্তমান হিপ পরিবর্তন না করেই হিপে একটি উপাদান যোগ করে।
  • heappop − এই ফাংশনটি হিপ থেকে ক্ষুদ্রতম ডেটা উপাদান প্রদান করে।
  • heapreplace − এই ফাংশনটি ফাংশনে সরবরাহ করা একটি নতুন মান দিয়ে ক্ষুদ্রতম ডেটা উপাদানকে প্রতিস্থাপন করে৷

একটি স্তূপ তৈরি করা

শুধুমাত্র heapify ফাংশন সহ উপাদানগুলির একটি তালিকা ব্যবহার করে একটি হিপ তৈরি করা হয়। নীচের উদাহরণে আমরা উপাদানগুলির একটি তালিকা সরবরাহ করি এবং heapify ফাংশন উপাদানগুলিকে পুনর্বিন্যাস করে যা ক্ষুদ্রতম উপাদানটিকে প্রথম অবস্থানে নিয়ে আসে৷

উদাহরণ

ইমপোর্ট heapqH =[21,1,45,78,3,5]# উপাদানগুলিকে পুনরায় সাজাতে heapify ব্যবহার করুনheapq.heapify(H)print(H)

আউটপুট

উপরের কোডটি কার্যকর করা হলে, এটি নিম্নলিখিত ফলাফল তৈরি করে -

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

স্তূপে ঢোকানো হচ্ছে

একটি হিপে একটি ডেটা উপাদান সন্নিবেশ করানো সর্বদা শেষ সূচকে উপাদান যোগ করে। কিন্তু আপনি নতুন যোগ করা উপাদানটিকে প্রথম সূচকে আনতে আবার heapify ফাংশন প্রয়োগ করতে পারেন শুধুমাত্র যদি এটির মান সবচেয়ে ছোট হয়। নিচের উদাহরণে আমরা 8 নম্বর সন্নিবেশ করি।

উদাহরণ

ইমপোর্ট heapqH =[21,1,45,78,3,5]# একটি heapheapq.heapify(H)মুদ্রণ(H)# elementheapq.heappush(H,8)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] 

একটি স্তূপে প্রতিস্থাপন করা হচ্ছে

heapreplace ফাংশন সর্বদা স্তূপের ক্ষুদ্রতম উপাদানটিকে সরিয়ে দেয় এবং কোনো ক্রম দ্বারা স্থির নয় এমন জায়গায় নতুন আগত উপাদান সন্নিবেশ করায়৷

উদাহরণ

 heapqH =[21,1,45,78,3,5]# heapheapq.heapify(H)print(H)# একটি elementheapq.heapreplace(H,6)print(H) প্রতিস্থাপন করুন> 

আউটপুট

উপরের কোডটি কার্যকর করা হলে, এটি নিম্নলিখিত ফলাফল তৈরি করে -

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

  1. পাইথনে CGI কি?

  2. পাইথনে <> অপারেশন কি?

  3. পাইথনে অপারেটর কি নয়?

  4. পাইথনে __init__.py কি?