ऐरे आधारित स्टैक
निश्चित आकार की सरणी और top सूचकांक का उपयोग करके स्टैक कार्यान्वयन। LIFO सिद्धांत का पालन करता है।
C++ प्रोग्राम उदाहरण
#include <iostream>
using namespace std;
const int MAX = 100;
int stack[MAX];
int top = -1;
void push(int val) {
if (top >= MAX - 1)
cout << "Stack Overflow" << endl;
else {
top++;
stack[top] = val;
}
}
void pop() {
if (top <= -1)
cout << "Stack Underflow" << endl;
else {
cout << "The popped element is " << stack[top] << endl;
top--;
}
}
void display() {
if (top >= 0) {
cout << "Stack elements: ";
for (int i = top; i >= 0; i--)
cout << stack[i] << " ";
cout << endl;
} else
cout << "Stack is empty";
}
int main() {
int ch, val;
cout << "1) Push in stack" << endl;
cout << "2) Pop from stack" << endl;
cout << "3) Display stack" << endl;
cout << "4) Exit" << endl;
do {
cout << "Enter choice: " << endl;
cin >> ch;
switch(ch) {
case 1:
cout << "Enter value to be pushed:" << endl;
cin >> val;
push(val);
break;
case 2: pop(); break;
case 3: display(); break;
case 4: cout << "Exit" << endl; break;
default: cout << "Invalid Choice" << endl;
}
} while(ch != 4);
return 0;
}
आउटपुट
1) Push in stack 2) Pop from stack 3) Display stack 4) Exit Enter choice: 1 Enter value to be pushed: 2 Enter choice: 1 Enter value to be pushed: 6 Enter choice: 1 Enter value to be pushed: 8 Enter choice: 1 Enter value to be pushed: 7 Enter choice: 2 The popped element is 7 Enter choice: 3 Stack elements are: 8 6 2 Enter choice: 5 Invalid Choice Enter choice: 4 Exit
कोड व्याख्या
push() फ़ंक्शन
ओवरफ्लो जांचता है (top >= MAX-1)। top बढ़ाकर नया मान स्टोर करता है।
pop() फ़ंक्शन
अंडरफ्लो जांचता है (top <= -1)। शीर्ष तत्व प्रदर्शित करके top घटाता है।
display() फ़ंक्शन
top से 0 तक लूप करके सभी तत्व प्रदर्शित करता है।
लिंक्ड लिस्ट बनाम ऐरे स्टैक
| विशेषता | ऐरे स्टैक | लिंक्ड लिस्ट स्टैक |
|---|---|---|
| आकार | निश्चित | गतिशील |
| मेमोरी | पूर्व-आवंटित | आवश्यकतानुसार |
| ओवरफ्लो | संभव | दुर्लभ (हीप सीमा तक) |