Skip to content

Commit 737de00

Browse files
authored
stacks using arrays
1 parent ec96a5f commit 737de00

File tree

1 file changed

+69
-0
lines changed

1 file changed

+69
-0
lines changed

stack_using_arr.c

+69
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
#include <stdio.h>
2+
#include <stdlib.h>
3+
4+
#define MAX 5
5+
int top = -1;
6+
int stack[MAX];
7+
8+
void push();
9+
void pop();
10+
void traverse();
11+
12+
int main() {
13+
int ch;
14+
do {
15+
printf("\n 1. PUSH ");
16+
printf("\n 2. POP");
17+
printf("\n 3. Traverse/Display");
18+
printf("\n 4. Exit ");
19+
printf("\n Enter your choice: ");
20+
21+
scanf("%d", &ch);
22+
switch (ch) {
23+
case 1:
24+
push();
25+
break;
26+
case 2:
27+
pop();
28+
break;
29+
case 3:
30+
traverse();
31+
break;
32+
case 4:
33+
exit(0);
34+
default:
35+
printf("INVALID CHOICE");
36+
break;
37+
}
38+
} while (ch != 4);
39+
40+
return 0;
41+
}
42+
43+
void push() {
44+
int m;
45+
if (top == MAX - 1) {
46+
printf("Stack Overflow");
47+
return;
48+
}
49+
printf("Input the new element: ");
50+
scanf("%d", &m);
51+
top++;
52+
stack[top] = m;
53+
}
54+
55+
void pop() {
56+
if (top == -1) {
57+
printf("Stack is empty or underflow");
58+
return;
59+
}
60+
stack[top] = 0;
61+
top--;
62+
}
63+
64+
void traverse() {
65+
int i;
66+
for (i = top; i >= 0; i--) {
67+
printf("%d\n", stack[i]);
68+
}
69+
}

0 commit comments

Comments
 (0)