Table of Contents
SEMESTER – II Unit – 1: Section 4: Data Structure: Stack
Data Structure: Stack (Operations and Applications)
Stack হলো একটি Linear Data Structure যেখানে ডেটা একটি নির্দিষ্ট নিয়মে সংরক্ষণ এবং অপসারণ করা হয়। এই নিয়মকে বলা হয় LIFO (Last In First Out)।
১. Stack কী?
Stack হলো এমন একটি ডেটা স্ট্রাকচার যেখানে সর্বশেষ যোগ করা ডেটা (element) প্রথমে বের হয়।
উদাহরণ:
Stack:
Top → 30
20
10
এখানে 30 প্রথমে বের হবে।
২. Stack-এর বৈশিষ্ট্য
- ✔ LIFO principle অনুসরণ করে
- ✔ শুধু Top থেকে operation করা যায়
- ✔ Simple এবং efficient
৩. Stack Operations
✔ Push Operation
Stack-এ নতুন element যোগ করার প্রক্রিয়াকে Push বলা হয়।
Push(40)
Stack:
Top → 40
30
20
10
✔ Pop Operation
Stack থেকে element বের করার প্রক্রিয়াকে Pop বলা হয়।
Pop()
Stack:
Top → 30
20
10
৪. Stack-এর অন্যান্য Operation
- Peek / Top → Top element দেখা
- isEmpty() → Stack খালি কিনা check করা
- isFull() → Stack পূর্ণ কিনা check করা
৫. Stack Implementation (Array ব্যবহার করে)
#include <stdio.h>
#define MAX 5
int stack[MAX];
int top = -1;
void push(int value) {
if(top == MAX-1) {
printf("Stack Overflow\n");
} else {
stack[++top] = value;
}
}
void pop() {
if(top == -1) {
printf("Stack Underflow\n");
} else {
top--;
}
}
৬. Stack-এর Applications
- ✔ Expression evaluation (infix, postfix)
- ✔ Function call (recursion)
- ✔ Undo/Redo operation
- ✔ Browser history
- ✔ Parenthesis checking
৭. বাস্তব জীবনের উদাহরণ
- Plate stack (থালার স্তূপ)
- Books stacking
যে প্লেটটি শেষ রাখা হয়, সেটিই প্রথমে তোলা হয়।
৮. Stack Overflow এবং Underflow
- Overflow → Stack পূর্ণ হলে নতুন element যোগ করা যায় না
- Underflow → Stack খালি হলে pop করা যায় না
উপসংহার
Stack একটি গুরুত্বপূর্ণ data structure যা LIFO principle অনুসরণ করে। Push এবং Pop operation-এর মাধ্যমে এটি কাজ করে এবং বিভিন্ন বাস্তব জীবনের সমস্যা সমাধানে ব্যবহৃত হয়।
Quick Revision
- Stack → LIFO structure
- Push → data যোগ করা
- Pop → data বের করা
- Top → শেষ element
- Application → undo, recursion, expression