diff options
1 files changed, 46 insertions, 0 deletions
| -rw-r--r-- | homework/81350/parser/stack.c | 46 |
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"); + } +} |
