কম্পিউটার টিউটোরিয়াল

ইন্টারভাল হিপ থেকে মিন এলিমেন্ট সরানো


  • একটি ইন্টারভাল হিপে, সবচেয়ে ছোট এলিমেন্ট হলো রুট নোডের বাম দিকের এলিমেন্ট। এই এলিমেন্ট সরিয়ে রিটার্ন করা হয়।
  • রুট নোডের বাম দিকে সৃষ্ট শূন্যস্থান পূরণের জন্য, লাস্ট নোড থেকে একটি এলিমেন্ট সরিয়ে পুনরায় রুট নোডে ইনসার্ট করা হয়।
  • এই এলিমেন্ট পরবর্তীতে নিচের দিকে যাওয়ার সাথে সাথে সব লেফট-হ্যান্ড এলিমেন্টের সাথে তুলনা করা হয় এবং প্রক্রিয়াটি তখনই থামে যখন ইন্টারভাল হিপের সকল শর্ত পূরণ হয়।
  • যদি কোনো স্টেজে নোডের বাম দিকের এলিমেন্ট ডান দিকের এলিমেন্ট থেকে বড় হয়ে যায়, তবে দুটি এলিমেন্ট এক্সচেঞ্জ করা হয় এবং তারপর আরও তুলনা করা হয়।
  • শেষে, রুট নোড আবার বাম দিকের সবচেয়ে ছোট এলিমেন্ট ধারণ করবে।

এই প্রসিডিউর নিম্নলিখিতভাবে ও ব্যাখ্যা করা যেতে পারে:

মিনিমাম এলিমেন্টের রিমিউভাল যেসবভাবে হ্যান্ডেল করা হয়:

  • যখন ইন্টারভাল হিপ খালি, removeMin অপারেশন ব্যর্থ হয়।
  • যখন ইন্টারভাল হিপে শুধু একটি এলিমেন্ট থাকে, এই এলিমেন্টটি রিটার্ন করতে হবে। আমরা একটি খালি ইন্টারভাল হিপ রেখে দিই।
  • যখন একাধিক এলিমেন্ট থাকে, রুটের লেফট এন্ডপয়েন্ট রিটার্ন করা উচিত। এই পয়েন্টটি রুট থেকে সরানো হয়।
  • যদি রুট ইন্টারভাল হিপের লাস্ট নোড হয়, আর কিছু করার দরকার নেই।
  • যখন লাস্ট নোড রুট নোড না হয়, আমরা লাস্ট নোড থেকে লেফট পয়েন্ট p সরাই। যদি এর ফলে লাস্ট নোড খালি হয়ে যায়, লাস্ট নোড আর হিপের অংশ নয়।
  • লাস্ট নোড থেকে সরানো পয়েন্ট p এম্বেডেড মিন হিপে রুট থেকে শুরু করে পুনরায় ইনসার্ট করা হয়।
  • নিচের দিকে যাওয়ার সাথে সাথে, বর্তমান p কে যাচাই করা নোডের রাইট এন্ডপয়েন্ট r এর সাথে এক্সচেঞ্জ করা প্রয়োজন হতে পারে যাতে p ≤ r নিশ্চিত হয়। রি-ইনসার্শন সাধারণ হিপে রি-ইনসার্ট করার মতো কৌশল ব্যবহার করে করা হয়।

  1. ডেটা স্ট্রাকচরে ইন্টারভাল হিপ

  2. C#-তে হেডনোড (HeadNode) থেকে nth এলিমেন্ট ডিলিট করা

  3. C#-এ লিস্টের প্রথম এলিমেন্ট সরানো (RemoveAt(0) / Pop)

  4. পাইথন লিস্ট থেকে ন্যূনতম মানবিশিষ্ট উপাদান খুঁজে বের করার পদ্ধতি