Website Summary Files Commits Branches @commit @diff @stats
path: root / homework / 81350 / parser / stack.c
diff options
context:
space:
mode:
1 files changed, 46 insertions, 0 deletions
-rw-r--r--homework/81350/parser/stack.c46
diff --git a/homework/81350/parser/stack.c b/homework/81350/parser/stack.c
new file mode 100644
index 0000000..a051f7a
--- /dev/null
+++ b/homework/81350/parser/stack.c
@@ -0,0 +1,46 @@
+#include "stack.h"
+
+int stack[MAXSIZE];
+int top = -1;
+
+int isempty() {
+
+ if(top == -1)
+ return 1;
+ else
+ return 0;
+}
+
+int isfull() {
+
+ if(top == MAXSIZE)
+ return 1;
+ else
+ return 0;
+}
+
+int peek() {
+ return stack[top];
+}
+
+int pop() {
+ int data;
+
+ if(!isempty()) {
+ data = stack[top];
+ top = top - 1;
+ return data;
+ } else {
+ printf("Could not retrieve data, Stack is empty.\n");
+ }
+}
+
+int push(int data) {
+
+ if(!isfull()) {
+ top = top + 1;
+ stack[top] = data;
+ } else {
+ printf("Could not insert data, Stack is full.\n");
+ }
+}