stack implementation
#include<iostream>
#define MS 100
using namespace std;
typedef struct stack{
int arr[MS];
int top;
}stack;
void init(stack *pts)
{
pts->top=-1;
}
int isfull(stack *pts)
{
if(pts->top==MS-1)
{
return 1;
}
else
{
return 0;
}
}
int isempty(stack *pts)
{
if(pts->top==-1)
{
return 1;
}
else
{
return 0;
}
}
void push(stack *pts,int data)
{
if(isfull(pts))
{
return;
}
else
{
++pts->top;
pts->arr[pts->top]=data;
}
}
int pop(stack *pts)
{
int temp;
if(isempty(pts))
{
return 9999;
}
else
{
temp=pts->arr[pts->top];
--pts->top;
return temp;
}
}
int peek(stack *pts)
{
if(isempty(pts)!=1)
{
return pts->arr[pts->top];
}
}
int main()
{
stack s;
init(&s);
int i,arr[5];
cout<<"push stack elements: ";
for(i=0;i<5;i++)
{
cin>>arr[i];
push(&s,arr[i]);
}
cout<<"popped elements: ";
for(i=0;i<5;i++)
{
cout<<pop(&s)<<"\n";
}
}
Comments
Post a Comment