Implementation of Stack Operations

Code:

#include <stdio.h> int MAXSIZE = 8; int stack[8]; 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"); } } int main() { // check if stack is empty printf("Stack empty: %s\n" , isempty()?"true":"false"); // push items on to the stack push(3); push(5); push(9); push(1); push(12); push(15); // peek item of the stack printf("Element at top of the stack: %d\n" ,peek()); // pop items from the stack printf("Elements: \n"); while(!isempty()) { int data = pop(); printf("%d\n",data); } // check if stack is full printf("Stack full: %s\n" , isfull()?"true":"false"); return 0; }
Output:
Stack empty: true
Element at top of the stack: 15
Elements:
15
12
1
9
5
3
Stack full: false


Operations in Stack Previous Next Applications of Stack