What is Stack ?
Stack is a linear data structure which follows a particular order in which the operations are performed.
The order may be LIFO(Last In First Out) or FILO(First In Last Out).
How find minimum element in stack:
Function:
void minimum()
{
int i,ans=stack[top];
for(i=top;i>=0;i--)
if(stack[i]< ans)
ans=stack[i];
printf("Minimum in stack is %d",ans);
}
#include< stdio.h>
#include< conio.h>
#define max 50
int stack[max],top=-1;
void create()
{
char ch;
do
{
top++;
printf("Enter Numbern");
scanf("%d",&stack[top]);
printf("Continue(y/n)n");
ch=getch();
}while(ch=='y');
}
void traverse()
{
int i;
printf("Stack is :n");
for(i=top;i>=0;i--){
printf("%d ",stack[i]);
}
}
void minimum()
{
int i,ans=stack[top];
for(i=top;i>=0;i--)
if(stack[i]< ans)
ans=stack[i];
printf("Minimum in stack is %d",ans);
}
void main()
{
clrscr();
create();
traverse();
minimum();
getch();
}
Enter Number
2
Continue(y/n)
Enter Number
1
Continue(y/n)
Enter Number
9
Continue(y/n)
Enter Number
3
Continue(y/n)
Enter Number
6
Continue(y/n)
Stack is :
6 3 9 1 2
Minimum in stack is 1