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

পাইথনে ফ্রন্ট, মিডল এবং ব্যাক থেকে পুশ-পপ সাপোর্ট করার কিউ ইমপ্লিমেন্টেশন


মান লিজিয়ে আমাদের একটি কিউ ইমপ্লিমেন্ট করতে বলা হয়েছে যেটি ফ্রন্ট, মিডল এবং ব্যাক থেকে মান পুশ এবং পপ করতে পারে।

আমাদের তিনটি কেসের জন্য পুশ এবং পপ ফাংশন জোড়া বানাতে হবে। আরেকটি ফাংশন বানাতে হবে যা দিয়ে keisাময় কিউর পুরো অবস্থা দেখা যাবে।

যেমন, ইনপুট হলে:

push_from_back(10)

push_from_back(20)

push_from_front(30)

push_from_middle(40)

push_from_front(50)

show_queue()

pop_from_back()

show_queue()

pop_from_front()

show_queue()

pop_from_middle()

show_queue(),

তবে আউটপুট হবে: [50, 30, 40, 10, 20], [50, 30, 40, 10], [30, 40, 10], [30, 10]।

সমাধানের ধাপসমূহ

  • array := কিউর অ্যারে রিপ্রেজেন্টেশন

  • push_from_front(value) ফাংশন: array.insert(0, value)

  • push_from_middle(value) ফাংশন: array.insert(len(array)//2, value)

  • push_from_back(value) ফাংশন: array.append(value)

  • pop_from_front() ফাংশন: খালি না হলে প্রথম এলিমেন্ট রিমুভ করে রিটার্ন করুন।

  • pop_from_middle() ফাংশন: (len(array)-1)//2 পজিশনের এলিমেন্ট রিমুভ করে রিটার্ন করুন।

  • pop_from_back() ফাংশন: শেষ এলিমেন্ট রিমুভ করে রিটার্ন করুন।

  • show_queue() ফাংশন: array রিটার্ন করুন।

উদাহরণ

নিচের ইমপ্লিমেন্টেশনটি দেখুন:

class Solution:
    def __init__(self):
        self.array = []
    def push_from_front(self, value):
        self.array.insert(0, value)
    def push_from_middle(self, value):
        self.array.insert(len(self.array) // 2, value)
    def push_from_back(self, value):
        self.array.append(value)
    def pop_from_front(self):
        return (self.array or [-1]).pop(0)
    def pop_from_middle(self):
        return (self.array or [-1]).pop((len(self.array) - 1) // 2)
    def pop_from_back(self):
        return (self.array or [-1]).pop()
    def show_queue(self):
        return self.array

ob = Solution()
ob.push_from_back(10)
ob.push_from_back(20)
ob.push_from_front(30)
ob.push_from_middle(40)
ob.push_from_front(50)
print(ob.show_queue())
ob.pop_from_back()
print(ob.show_queue())
ob.pop_from_front()
print(ob.show_queue())
ob.pop_from_middle()
print(ob.show_queue())

ইনপুট

ob = Solution() ob.push_from_back(10) ob.push_from_back(20) ob.push_from_front(30) ob.push_from_middle(40) ob.push_from_front(50) print(ob.show_queue()) ob.pop_from_back() print(ob.show_queue()) ob.pop_from_front() print(ob.show_queue()) ob.pop_from_middle() print(ob.show_queue())

আউটপুট

[50, 30, 40, 10, 20] [50, 30, 40, 10] [30, 40, 10] [30, 10]

  1. পাইথন প্রোগ্রামে অ্যারের যোগফল বের করা

  2. পাইথন প্রোগ্রাম অ্যারেতে সবচেয়ে বড় এলিমেন্ট বের করা

  3. পাইথনে অ্যারের যোগফল বের করা

  4. পাইথনে অ্যারে মনোটোনিক (Monotonic) কিনা চেক করা