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

ডেটা স্ট্রাকচারে স্ট্যাক প্রিমিটিভ অপারেশন


স্ট্যাক হল লাস্ট ইন ফার্স্ট আউট ডেটা স্ট্রাকচার। স্ট্যাক বিভিন্ন জায়গায় ব্যবহৃত হয় এক্সপ্রেশন ইভ্যালুয়েশন, কল এবং রিকার্সন কৌশল ইত্যাদিতে। স্ট্যাকের কিছু প্রিমিটিভ অপারেশন রয়েছে। এখানে আমরা স্ট্যাকের সেই অপারেশনগুলো দেখব এবং স্ট্যাক ADT ব্যবহার করে একটি উদাহরণ দেখব।

ADT (অবস্ট্রাক্ট ডেটা টাইপ) হল ডেটা টাইপের একটি বিশেষ ধরন, যেসের আচরণ একটি ভ্যালু সেট এবং অপারেশন সেট দ্বারা ডিফাইন করা হয়। "Abstract" শব্দটি ব্যবহৃত হয় কারণ আমরা এই ডেটা টাইপগুলো ব্যবহার করতে পারি, বিভিন্ন অপারেশন পারফর্ম করতে পারি। কিন্তু সেসব অপারেশন কিভাবে কাজ করে সেটি ইউজার থেকে সম্পূর্ণ লুকিয়ে থাকে। ADT প্রিমিটিভ ডেটা টাইপ দিয়ে তৈরি হয়, কিন্তু অপারেশন লজিক লুকিয়ে থাকে।

স্ট্যাক ADT-এর কিছু অপারেশন বা ফাংশন নিচে -

  • isFull(), এটি চেক করতে ব্যবহৃত হয় স্ট্যাক ফুল কিনা
  • isEmpty(), এটি চেক করতে ব্যবহৃত হয় স্ট্যাক খালি কিনা
  • push(x), এটি x কে স্ট্যাকে পুশ করতে ব্যবহৃত হয়
  • pop(), এটি স্ট্যাকের টপ থেকে একটি এলিমেন্ট ডিলিট করতে ব্যবহৃত হয়
  • peek(), এটি স্ট্যাকের টপমোস্ট এলিমেন্ট পাওয়ার জন্য ব্যবহৃত হয়
  • size(), এই ফাংশন স্টাকে উপস্থিত এলিমেন্টের সংখ্যা পাওয়ার জন্য ব্যবহৃত হয়

উদাহরণ

#include 
#include 
using namespace std;
main() {
    stack stk;
    if(stk.empty()){
        cout << "Stack is empty" << endl;
    } else {
        cout << "Stack is not empty" << endl;
    }
    //insert elements into stack
    stk.push(10);
    stk.push(20);
    stk.push(30);
    stk.push(40);
    stk.push(50);
    cout << "Size of the stack: " << stk.size() << endl;
    //pop and dispay elements
    while(!stk.empty()) {
        int item = stk.top(); // same as peek operation
        stk.pop();
        cout << item << " ";
    }
}

আউটপুট

Stack is empty
Size of the stack: 5
50 40 30 20 10
  1. করেসপন্ডেন্স ভিত্তিক ডেটা স্ট্রাকচার

  2. ডেটা স্ট্রাকচারে মিনিমাম স্প্যানিং ট্রি

  3. ডেটা স্ট্রাকচারে বাইনারি ট্রি রিপ্রেজেন্টেশন

  4. ডেটা স্ট্রাকচারে অ্যামোর্টাইজড টাইম কমপ্লেক্সিটি