Stack Program using C arrays

Previous
Next
#include<stdio.h>
#define SIZE 5
int stack[SIZE], top=-1;
void push(int);
int pop(void);
int peek(void);
int isFull(void);
int isEmpty(void);
void display(void);
int main()
{
	int choice, ele;
	while(1)
	{
		printf("Stack operations : \n");
		printf("1. Push \n");
		printf("2. Pop \n");
		printf("3. Peek \n");
		printf("4. Display \n");
		printf("5. Quit \n");
		
		printf("Enter your choice : ");
		scanf("%d", &choice);
		
		switch(choice)
		{
			case 1	:	printf("Enter element to push : ");
						scanf("%d", &ele);
						push(ele);
						break;
						
			case 2	:	ele = pop();
						if(ele==-1)
							printf("Empty Stack \n\n");
						else
							printf("Popped : %d \n\n", ele);
						break;
			
			case 3	:	ele = peek();
						if(ele==-1)
							printf("Empty Stack \n\n");
						else
							printf("Peek element is : %d \n\n", ele);
						break;
			
			case 4	:	display();
						break;
						
			case 5	:	exit(1);
			
			default	:	printf("Invalid choice \n\n");			
		}
	}
	return 0;
}
void push(int ele)
{
	if(isFull())
	{
		printf("Stack is Full \n\n");
	}
	else
	{
		++top;
		stack[top] = ele;
		printf("Element pushed on to the Stack \n\n");
	}
}
int isFull()
{
	if(top==SIZE-1)
		return 1;
	else
		return 0;
}
int pop(void)
{
	if(isEmpty())
	{
		return -1;
	}
	else
	{
		int ele = stack[top];
		--top;
		return ele;
	}
}
int isEmpty()
{
	if(top==-1)
		return 1;
	else
		return 0;
}
int peek(void)
{
	if(isEmpty())
		return -1;
	else
	{
		return stack[top];
	}
}
void display()
{
	if(isEmpty())
	{
		printf("Stack is Empty \n\n");
	}
	else
	{
		int i;
		printf("Stack elements are : \n");
		for(i=top ; i>=0 ; i--)
		{
			printf("%d \n", stack[i]);
		}
	}
}
Previous
Next

Add Comment

Courses Enquiry Form