Stack কি?
Raihanul Islam Sharif

Raihanul Islam Sharif @raihanuldev

About: Self-taught Full Stack Developer with a strong focus on building scalable and optimized web applications. I specialize in the MERN stack and enjoy tackling challenges in Data Structures and Algorithms

Location:
Bangladesh
Joined:
Aug 4, 2023

Stack কি?

Publish Date: Jan 30
0 0

Stack হলো একটি লিনিয়ার ডাটা স্ট্রাকচার যা LIFO (Last In, First Out) পদ্ধতিতে কাজ করে। অর্থাৎ যে আইটেমটি শেষবার স্ট্যাকে ঢোকানো হয়, সেটি সবার আগে বের হয়।

Stack এর মূল কাজ:

1. Push: স্ট্যাকে নতুন একটি আইটেম যোগ করা।

**

  1. Pop:** স্ট্যাক থেকে একটি আইটেম মুছে ফেলা।

3. Top/Peek: স্ট্যাকের শীর্ষে থাকা আইটেমটি দেখা (মুছা ছাড়াই)।

4. isEmpty: চেক করা যে স্ট্যাক খালি কিনা।

Image description

**
Stack কিভাবে কাজ করে?**

উদাহরণ:

ধরা যাক, একটি স্ট্যাকে আমরা নিচের কাজগুলো করবো:

Push: 10 → 20 → 30

Pop: একবার Pop করলে 30 মুছে যাবে।

স্ট্যাকের অবস্থান:

  1. Push(10): [10]

  2. Push(20): [10, 20]

  3. Push(30): [10, 20, 30]

  4. Pop(): [10, 20]

Stack ইমপ্লিমেন্টেশন (C++):

`#include
using namespace std;

define MAX 100 // স্ট্যাকের ম্যাক্সিমাম সাইজ

class Stack {
int top; // শীর্ষ আইটেমের অবস্থান
int arr[MAX]; // স্ট্যাক হিসেবে অ্যারে ব্যবহার

public:
Stack() { top = -1; } // কন্সট্রাক্টর: স্ট্যাক শুরুতে খালি
bool isEmpty() { return top == -1; } // চেক খালি কিনা
bool isFull() { return top == MAX - 1; } // চেক পূর্ণ কিনা

void push(int value) {
if (isFull()) {
cout << "Stack Overflow!" << endl;
return;
}
arr[++top] = value; // টপ ইনক্রিমেন্ট করে ভ্যালু যোগ
cout << value << " pushed to stack." << endl;
}

void pop() {
if (isEmpty()) {
cout << "Stack Underflow!" << endl;
return;
}
cout << arr[top--] << " popped from stack." << endl; // টপ থেকে ভ্যালু মুছে টপ কমানো
}

void peek() {
if (isEmpty()) {
cout << "Stack is empty!" << endl;
return;
}
cout << "Top element is: " << arr[top] << endl;
}
};

int main() {
Stack s;

s.push(10);
s.push(20);
s.push(30);
s.peek(); // শীর্ষ দেখানো
s.pop(); // শীর্ষ মুছে ফেলা
s.peek(); // নতুন শীর্ষ দেখানো

return 0;
}

আউটপুট:

10 pushed to stack.
20 pushed to stack.
30 pushed to stack.
Top element is: 30
30 popped from stack.
Top element is: 20
`

Stack এর ব্যবহার:

  1. ফাংশন কলের ট্র্যাক রাখা।

  2. আনডো/রিডো অপারেশন।

  3. প্যালিনড্রোম চেক।

  4. ব্যালেন্সড প্যারেনথেসিস চেক করা।

Stack সহজ, কিন্তু শক্তিশালী একটি ডাটা স্ট্রাকচার!

Comments 0 total

    Add comment