Stacks Programs
Stacks Programs
#include <stdio.h>
#include<stdlib.h>
int stack[100];
int size;
int top=-1;
void push()
if(top==size-1)
printf("\nStack is overflow.");
else
top++;
scanf("%d",&stack[top]);
void display()
int i;
if(top==-1)
printf("\nStack is empty.");
else
printf(" %d",stack[i]);
void pop()
int temp;
if(top==-1)
printf("Stack is underflow.");
else
temp=stack[top];
top--;
void topofthestack()
if(top==-1)
printf("Stack is empty.");
else
void isempty()
if(top==-1)
printf("Stack is empty.");
else
int main()
int opt;
scanf("%d",&size);
while(1)
scanf("%d",&opt);
switch(opt)
case 1 : push();
break;
case 2 : pop();
break;
case 3 : topofthestack();
break;
case 4 : isempty();
break;
case 5 : display();
break;
case 6 : exit(1);
return 0;
#include <stdio.h>
#include <stdlib.h>
struct node
int val;
};
void push();
void pop();
void display();
int main()
int choice;
printf("\n----------------------------------------------\n");
do
scanf("%d", &choice);
switch (choice)
case 1: push();
break;
case 2: pop();
break;
case 3: display();
break;
case 4: printf("Exiting...\n");
break;
pop();
return 0;
void push()
int val;
if (ptr == NULL)
exit(EXIT_FAILURE);
scanf("%d", &val);
ptr->val = val;
ptr->next = head;
head = ptr;
printf("Item pushed\n");
void pop()
{
if (head == NULL)
printf("Underflow\n");
return;
head = head->next;
free(ptr);
void display()
if (ptr == NULL)
printf("Stack is empty\n");
else
printf("%d\n", ptr->val);
ptr = ptr->next;
}
}