Implementation of stack using Arrays:
//stack program
template<class T>
class stack
{
private:
T *s;
int top,size;
public:
void push(T x);
T pop();
stack(int k=40);
~stack();
int isfull();
int isempty();
void display();
T topmost();
};
template<class T>
stack<T>::stack(int k)
{
top=-1;
size=k;
s=new T[size];
}
//isempty()
template<class T>
int stack<T>::isempty()
{
return(top==-1);
}
//isfully
template<class T>
int stack<T>::isfull()
{
return(top==size-1);
}
template<class T>
void stack<T>::push(T x)
{
if(isfull())
{
cout<<"stack is full,Insertion is not possible\n";
}
else
{
top++;
s[top]=x;
}
}
//pop()
template<class T>
T stack<T>::pop()
{
T x;
if(isempty())
return(-1);
else
{
x=s[top];
top--;
return(x);
}
}
template<class T>
void stack<T>::display()
{
if(isempty())
cout<<"stack is empty\n";
else
{
cout<<"stack is as follows\n";
for(int i=top;i>=0;i--)
cout<<s[i]<<"\n";
}
}
template<class T>
T stack<T>::topmost()
{
if(isempty())
return(-1);
else
return(s[top]);
}
void menu1()
{
cout<<"1. integer stack\n";
cout<<"2. float stack\n";
cout<<"3. character stack\n";
cout<<"4. exit\n";
}
void menu2()
{
cout<<"1. insertion\n";
cout<<"2. deletion\n";
cout<<"3. display\n";
cout<<"4. topmost value in the stack\n";
cout<<"5. exit\n";
}
void main()
{
int ch,k;
menu1();
cout<<"enter ur choice\n";
cin>>ch;
while(ch<5)
{
cout<<"enter size of the stack\n";
cin>>k;
case 1:{
stack<int> a(k);
operation(a);
break;
}
case 2:{
stack<float> a(k);
operation(a);
break;
}
case 3:{
stack<char> a(k);
operation(a);
break;
}
}
menu1();
cout<<"enter ur choice\n";
cin>>ch;
}//end of while
}//end of main()
Stacks
Static implementation of stack
Basic stack operation
//stack program
template<class T>
class stack
{
private:
T *s;
int top,size;
public:
void push(T x);
T pop();
stack(int k=40);
~stack();
int isfull();
int isempty();
void display();
T topmost();
};
template<class T>
stack<T>::stack(int k)
{
top=-1;
size=k;
s=new T[size];
}
//isempty()
template<class T>
int stack<T>::isempty()
{
return(top==-1);
}
//isfully
template<class T>
int stack<T>::isfull()
{
return(top==size-1);
}
template<class T>
void stack<T>::push(T x)
{
if(isfull())
{
cout<<"stack is full,Insertion is not possible\n";
}
else
{
top++;
s[top]=x;
}
}
//pop()
template<class T>
T stack<T>::pop()
{
T x;
if(isempty())
return(-1);
else
{
x=s[top];
top--;
return(x);
}
}
template<class T>
void stack<T>::display()
{
if(isempty())
cout<<"stack is empty\n";
else
{
cout<<"stack is as follows\n";
for(int i=top;i>=0;i--)
cout<<s[i]<<"\n";
}
}
template<class T>
T stack<T>::topmost()
{
if(isempty())
return(-1);
else
return(s[top]);
}
void menu1()
{
cout<<"1. integer stack\n";
cout<<"2. float stack\n";
cout<<"3. character stack\n";
cout<<"4. exit\n";
}
void menu2()
{
cout<<"1. insertion\n";
cout<<"2. deletion\n";
cout<<"3. display\n";
cout<<"4. topmost value in the stack\n";
cout<<"5. exit\n";
}
void main()
{
int ch,k;
menu1();
cout<<"enter ur choice\n";
cin>>ch;
while(ch<5)
{
cout<<"enter size of the stack\n";
cin>>k;
case 1:{
stack<int> a(k);
operation(a);
break;
}
case 2:{
stack<float> a(k);
operation(a);
break;
}
case 3:{
stack<char> a(k);
operation(a);
break;
}
}
menu1();
cout<<"enter ur choice\n";
cin>>ch;
}//end of while
}//end of main()
Stacks
Static implementation of stack
Basic stack operation
No comments:
Post a Comment