डेटा स्ट्रक्चर का परिचय
डेटा स्ट्रक्चर डेटा का संरचित संग्रह है। यह दो प्रकार का होता है:
- रैखिक डेटा स्ट्रक्चर: डेटा रैखिक क्रम में व्यवस्थित होता है। उदा: ऐरे, स्ट्रक्चर, स्टैक, क्यू, लिंक्ड लिस्ट।
- गैर-रैखिक डेटा स्ट्रक्चर: डेटा पदानुक्रमित तरीके से व्यवस्थित होता है। उदा: ट्री, ग्राफ, सेट, टेबल।
स्टैक क्या है?
स्टैक एक रैखिक डेटा स्ट्रक्चर है जहां डेटा केवल एक छोर (टॉप) पर ही डाला और हटाया जाता है। यह LIFO (लास्ट इन फर्स्ट आउट) सिद्धांत का पालन करता है।
मुख्य ऑपरेशन्स
- Push: स्टैक में एलिमेंट डालना।
- Pop: स्टैक से एलिमेंट हटाना।
स्टैक की स्थितियां
- स्टैक ओवरफ्लो: भरे हुए स्टैक में एलिमेंट डालने का प्रयास।
- स्टैक अंडरफ्लो: खाली स्टैक से एलिमेंट हटाने का प्रयास।
एल्गोरिदम
Push()
if (top == n-1)
printf("Stack Overflow");
else {
top++;
a[top] = item;
}
Pop()
if (top == -1)
printf("Stack Underflow");
else {
item = a[top];
top--;
}
Display()
if (top == -1)
printf("Stack is empty");
else {
for (i = 0; i <= top; i++)
printf("%d ", a[i]);
}
C प्रोग्राम: ऐरे का उपयोग करके स्टैक का कार्यान्वयन
#include <stdio.h>
#include <conio.h>
int top = -1, n, a[100];
void push();
void pop();
void display();
int main() {
int ch;
clrscr();
printf("Enter the size of the stack: ");
scanf("%d", &n);
printf("Stack Implementation\n");
printf("1. Push\n2. Pop\n3. Exit\n");
do {
printf("Enter your choice: ");
scanf("%d", &ch);
switch(ch) {
case 1: push(); display(); break;
case 2: pop(); display(); break;
case 3: exit(0);
default: printf("Invalid choice");
}
} while(ch >= 1 && ch <= 3);
getch();
return 0;
}
void push() {
int item;
if (top == n-1)
printf("Stack Overflow");
else {
printf("Enter element to insert: ");
scanf("%d", &item);
top++;
a[top] = item;
}
}
void pop() {
int item;
if (top == -1)
printf("Stack Underflow");
else {
item = a[top];
top--;
printf("Deleted element = %d", item);
}
}
void display() {
int i;
if (top == -1)
printf("Stack is empty");
else {
printf("Stack contents: ");
for (i = 0; i <= top; i++)
printf("%d\t", a[i]);
}
}
आउटपुट उदाहरण
Enter size of stack: 5 Stack Implementation 1. Push 2. Pop 3. Exit Enter choice: 1 Enter element: 10 Stack contents: 10 Enter choice: 1 Enter element: 20 Stack contents: 10 20 Enter choice: 2 Deleted element = 20 Stack contents: 10 Enter choice: 2 Deleted element = 10 Stack contents: Stack is empty Enter choice: 2 Stack Underflow