Program using Stack Concept
#include<stdio.h>
int stack[100],choice,n,top,x,i;
void push(void);
void pop(void);
void display(void);
int main()
top=-1;
printf("\n Enter the size of STACK[MAX=100]:");
scanf("%d",&n);
printf("\n\t STACK OPERATIONS USING ARRAY");
printf("\n\t--------------------------------");
printf("\n\t 1.PUSH\n\t 2.POP\n\t 3.DISPLAY\n\t 4.EXIT");
do
printf("\n Enter the Choice:");
scanf("%d",&choice);
switch(choice)
case 1:
push();
break;
case 2:
pop();
break;
case 3:
display();
break;
}
case 4:
printf("\n\t EXIT POINT ");
break;
default:
printf ("\n\t Please Enter a Valid Choice(1/2/3/4)");
while(choice!=4);
return 0;
void push()
if(top>=n-1)
printf("\n\tSTACK is over flow");
else
printf(" Enter a value to be pushed:");
scanf("%d",&x);
top++;
stack[top]=x;
void pop()
if(top<=-1)
printf("\n\t Stack is under flow");
else
{
printf("\n\t The popped elements is %d",stack[top]);
top--;
void display()
if(top>=0)
printf("\n The elements in STACK \n");
for(i=top; i>=0; i--)
printf("\n%d",stack[i]);
printf("\n Press Next Choice");
else
printf("\n The STACK is empty");
====================================================================================================
====================================================================================================
Program using Queue Concept
#include <stdio.h>
#define MAX 50
void insert();
void delete();
void display();
int queue_array[MAX];
int rear = - 1;
int front = - 1;
main()
int choice;
while (1)
{
printf("1.Insert element to queue \n");
printf("2.Delete element from queue \n");
printf("3.Display all elements of queue \n");
printf("4.Quit \n");
printf("Enter your choice : ");
scanf("%d", &choice);
switch (choice)
case 1:
insert();
break;
case 2:
delete();
break;
case 3:
display();
break;
case 4:
exit(1);
default:
printf("Wrong choice \n");
} /* End of switch */
} /* End of while */
} /* End of main() */
void insert()
int add_item;
if (rear == MAX - 1)
printf("Queue Overflow \n");
else
if (front == - 1)
/*If queue is initially empty */
front = 0;
printf("Inset the element in queue : ");
scanf("%d", &add_item);
rear = rear + 1;
queue_array[rear] = add_item;
} /* End of insert() */
void delete()
if (front == - 1 || front > rear)
printf("Queue Underflow \n");
return ;
else
printf("Element deleted from queue is : %d\n", queue_array[front]);
front = front + 1;
} /* End of delete() */
void display()
int i;
if (front == - 1)
printf("Queue is empty \n");
else
printf("Queue is : \n");
for (i = front; i <= rear; i++)
printf("%d ", queue_array[i]);
printf("\n");
} /* End of display() */