-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstack.c
60 lines (45 loc) · 1.09 KB
/
stack.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <stdio.h>
#include <string.h>
typedef struct Stack {
int top;
char data[3][16];
int maximumSize;
} Stack;
void get(Stack myStack) {
printf("\n %d [ ", myStack.top);
for(int i = 0; i < myStack.top; i++) {
if (myStack.data[i] != "") {
printf("%s ", myStack.data[i]);
}
}
printf("]\n");
}
Stack push(Stack myStack, char newItem[16]) {
if (myStack.top < myStack.maximumSize) {
strcpy(myStack.data[myStack.top], newItem);
myStack.top = myStack.top + 1;
get(myStack);
} else {
printf("\n Stack (%d) is full, can't add %s\n", myStack.top, newItem);
}
return myStack;
}
Stack pop(Stack myStack) {
if (myStack.top != 0) {
myStack.top = myStack.top - 1;
get(myStack);
}
return myStack;
}
int main() {
Stack myStack = { .top = 0, .data = {}, .maximumSize = 3 };
myStack = push(myStack, "Kevin");
myStack = push(myStack, "Sally");
myStack = push(myStack, "David");
myStack = push(myStack, "Sonya");
myStack = pop(myStack);
myStack = push(myStack, "Jessy");
myStack = push(myStack, "Harry");
getchar();
return 0;
}