# include <stdio.h>
# include <conio.h>
void push();
void pop();
void list();
int top=1,stack[10],z,o;
main()
{
int n,m,i,a,s;
clrscr();
printf("\t\t\t\tSTACK\n");
printf("\nEnter the size of the stack:\n");
scanf("%d",&z);
for(;;)
{
clrscr();
printf("\t\t\t\tSTACK\n");
printf("\n1.push");
printf("\n2.pop");
printf("\n3.list");
printf("\n4.exit\n");
printf("\nEnter your choice:");
scanf("%d",&n);
switch(n)
{
case 1: if((top-1)>=z)
{
printf("The stack is full.\n");
getch();
break;
}
printf("Enter the no. of elements:\n");
scanf("%d",&m);
while(z-(top-1)<m)
{
if((top-1)>m)
break;
printf("%d elements not to be added.\n",m);
printf("Only %d elements to be added.\n\n",z-top+1);
printf("Enter the no. of elements:\n");
scanf("%d",&m);
}
printf("Enter the elements:\n");
for(i=1;i<=m;i++)
{
if (top>z)
{
printf("The stack is full.\n");
break;
}
scanf("\t%d",&a);
push(a);
}
break;
case 2: if((top-1)==0)
{
printf("The stack is empty.\n");
getch();
break;
}
printf("Enter the no. of elements to be deleted:\n");
scanf("%d",&o);
s=o;
while(s>=top)
{
if((top-1)==0)
break;
printf("%d elements not to be deleted.\n",o);
printf("Only %d elements to be deleted.\n",top-1);
printf("\nEnter the no. of elements to be deleted:\n");
scanf("%d",&s);
o=top-1;
}
for(i=0;i<s;i++)
{
if((top-1)<=0)
break;
pop();
}
getch();
break;
case 3: list();
break;
case 4: exit();
break;
default: printf("\nYour choice is wrong");
break;
}
}
}
void push(int a)
{
stack[top]=a;
top++;
}
void pop()
{
printf("The popped element is: %d\n",stack[top-1]);
top--;
}
void list()
{
int i;
printf("stack:");
for(i=1;i<=top-1;i++)
printf(" ---> %d ",stack[i]);
printf("\n");
getch();
}
No comments:
Post a Comment