आज के programming world में Stack in C एक बहुत ही important topic है। अगर आप C language सीख रहे हैं या Data Structure की तैयारी कर रहे हैं, तो Stack को समझना आपके लिए बहुत जरूरी है।
इस article में हम simple Hindi में जानेंगे कि Stack in C क्या है, यह कैसे काम करता है, इसके operations, implementation, applications और interview-type सवाल भी।
सी में स्टैक क्या है (What is Stack in C Programming) ?
Stack in C एक बहुत ही important linear data structure है जो LIFO – Last In First Out principle पर काम करता है। इसका मतलब यह है कि जो element सबसे आखिर में stack के अंदर जाता है, वही element सबसे पहले बाहर निकलता है।
सरल भाषा में कहें तो Stack in C एक ऐसी memory structure है जहाँ data सिर्फ एक ही तरफ से add और remove किया जाता है, और उस तरफ को हम Top कहते हैं।
LIFO Concept Explained (Last In First Out)
LIFO का पूरा नाम है – Last In First Out. इसका मतलब होता है – जो element सबसे आखिर में अंदर जाता है, वही सबसे पहले बाहर निकलता है।
यही principle Stack in C और सभी stack data structures में follow किया जाता है।
Example:
आपने stack में ये numbers डाले –
10 → 20 → 30
अब Pop करेंगे तो output होगा – 30
क्योंकि 30 last inserted element था।
Stack in C – Important Operations
1. Push Operation in Stack in C
Push का मतलब होता है stack के top पर नया element add करना।
अगर stack already full है और आप push करेंगे, तो यह condition कहलाती है –
Stack Overflow
2. Pop Operation in Stack in C
Pop का मतलब होता है stack के top से element remove करना।
अगर stack खाली है और आप pop करेंगे, तो यह कहलाता है –
Stack Underflow
3. Peek / Top Operation
Peek operation stack के top element को दिखाता है, लेकिन उसे remove नहीं करता।
4. isEmpty और isFull
- isEmpty – check करता है कि stack empty है या नहीं
- isFull – check करता है कि stack पूरी तरह भर चुकी है या नहीं
How to Implement Stack in C (सी में Stack कैसे Implement करें)
C language में Stack को हम normally array या linked list की help से implement करते हैं। इसमें data insert और delete सिर्फ एक ही end से होता है, जिसे हम Top कहते हैं।
Stack में main 4 operations होते हैं:
- Push – data add करना
- Pop – data remove करना
- Peek / Top – top element देखना
- isEmpty / isFull – stack खाली है या भरा है check करना
यह भी पढ़ें: What is File Handling in C Programming | सी में फ़ाइल हैंडलिंग क्या है (Beginner to Pro Guide)
How to implement Stack in C Using Array
अब हम देखते हैं कि Stack in C को array की मदद से कैसे implement किया जाता है।
#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 {
top++;
stack[top] = value;
printf("%d pushed into stack\n", value);
}
}
void pop() {
if(top == -1)
printf("Stack Underflow\n");
else {
printf("%d popped from stack\n", stack[top]);
top--;
}
}
void peek() {
if(top == -1)
printf("Stack is Empty\n");
else
printf("Top element is %d\n", stack[top]);
}
int main() {
push(10);
push(20);
push(30);
peek();
pop();
peek();
return 0;
}
Code Explanation:
- stack[MAX] – stack array define किया गया है
- top = -1 – start में stack empty होती है
- push() – element add करता है
- pop() – element remove करता है
- peek() – top element दिखाता है
How to implement Stack in C Using Linked List
अब जैसे आपने array से stack implement किया, उसी तरह नीचे Linked List से Stack in C का पूरा single code दिया गया है।
#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
struct Node* next;
};
struct Node* top = NULL;
void push(int value) {
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
if(newNode == NULL) {
printf("Stack Overflow (Heap Full)\n");
} else {
newNode->data = value;
newNode->next = top;
top = newNode;
printf("%d pushed into stack\n", value);
}
}
void pop() {
if(top == NULL)
printf("Stack Underflow\n");
else {
struct Node* temp = top;
printf("%d popped from stack\n", temp->data);
top = top->next;
free(temp);
}
}
void peek() {
if(top == NULL)
printf("Stack is Empty\n");
else
printf("Top element is %d\n", top->data);
}
int main() {
push(10);
push(20);
push(30);
peek();
pop();
peek();
return 0;
}
Code Explanation:
- struct Node – linked list का node define किया गया है
- top = NULL – start में stack empty होती है
- push() – new node create करके stack में add करता है
- pop() – top node delete करता है
- peek() – top element दिखाता है
यह भी पढ़ें: सी प्रोग्रामिंग भाषा कैसे सीखे | C Programming in Hindi -पुरे जानकारी
Applications of Stack in C Programming
Stack in C का use बहुत जगह होता है:
- Function Call Management – C में function call stack पर manage होती है
- Expression Evaluation – postfix, prefix calculation
- Recursion – हर recursive call stack में store होती है
- Undo / Redo Feature – text editor में
- Browser History – back और forward operations
- Syntax Checking – parentheses validation
यह भी पढ़ें: Recursion in C | C में रिकर्सन क्या है – Complete Guide सिर्फ 10 मिनट में समझे
Best Resources to Learn Stack in C
अगर आप Stack in C को और deeply समझना चाहते हैं, तो आपको कुछ trusted computer science websites को जरूर follow करना चाहिए।
निष्कर्ष (Conclusion)
इस article में आपने detail में सीखा कि Stack in C क्या है, यह कैसे काम करता है, इसके operations, implementation using array और linked list, overflow-underflow और इसके real life applications।
अगर आप C programming या Data Structure में strong बनना चाहते हैं, तो Stack concept आपको अच्छे से समझना ही पड़ेगा।
FAQs
Q1. क्या हम stack में middle element access कर सकते हैं?
Ans. Directly नहीं। Stack में access सिर्फ top element से ही possible होता है।
Q2. Stack और Heap में difference क्या है?
Ans. Stack memory automatically manage होती है, जबकि heap memory dynamic होती है और manually free करनी पड़ती है।
Q3. Push और Pop की time complexity क्या होती है?
Ans. Both operations की time complexity होती है – O(1)
Q4. Stack का real life example क्या है?
Ans. Plates का ढेर, books stack, undo/redo option आदि।