C++ program to implement Stack using Formula Based Representation
               
			
			
            		
				
| #include<iostream.h>
#include<constream.h>
template<class T>
class Stack
{
	public:
		Stack(int MaxStackSize);
		~Stack(){delete[] S;}
		int IsEmpty()const{return top==-1;}
		int IsFull()const{return top==MaxTop;}
		T Peek()const;
		void Push(T);
		T Pop();
		void Display();
	private:
		int top; //current top of stack
		int MaxTop; //max val for top
		T *S; //element array
};
	template<class T>
Stack<T>::Stack(int MaxStackSize)
{
	//stack constructor
	MaxTop=MaxStackSize-1;
	S=new T[MaxStackSize];
	top=-1;
}
template<class T>
T Stack<T>::Peek()const
{
	if(IsEmpty()) //top fails
		return 0;
	else
		return S[top];
}
	template<class T>
void Stack<T>::Push(T x)
{
	if(IsFull())
		cout<<"no memory()"; //add fails
	else
	{
		S[++top]=x;
	}
}
	template<class T>
T Stack<T>::Pop()
{
	T x;
	if(IsEmpty())
	{
		cout<<"stack is empty\n";
		return -1;
	}
	else
	{
		x=S[top--];
		return x;
	}
}
	template<class T>
void Stack<T>::Display()
{
	if(IsEmpty())
		cout<<"out of bounds"; //delete fails
	else
		for(int i=top;i>=0;i--)
		{
			cout<<S[i]<<"\t";
		}
}
void menu()
{
	cout<<"1.Push\n 2.Pop\n 3.Peek\n 4.Display\n";
}
void main()
{
	Stack<int>iobj(5);
	int ch,x;
	clrscr();
	do
	{
		menu();
		cout<<"enter the choice\n";
		cin>>ch;
		switch(ch)
		{
			case 1:
				cout<<"enter x value to push into the stack\n";
				cin>>x;
				iobj.Push(x);
				break;
			case 2:
				x=iobj.Pop();
				if(x!=-1)
					cout<<"poped value is \t"<<x<<endl;
				break;
			case 3:
				x=iobj.Peek();
				cout<<"top most value is \t"<<x<<endl;
				break;
			case 4:
				iobj.Display();
				break;
		}
	}while(ch>=1&&ch<=4);
	getch();
} | 
 
			
		
        
         
((this is my programme about stack implimentation .It gives error type mismatching.please anyone help me
#include
#include
# define SIZE 5
int stack[SIZE];
int top;
void main(void)
{
int ch;
top=-1;
clrscr();
do
{
printf(“\n1:push\n2:pop\n3:display\n4:exit\n enter your choice”);
scanf(“%d”,&ch);
switch(ch);
{
case1:push();
break;
case2:pop();
break;
case3:display();
break;
case4:break;
Default:printf(” wrong choice”);
}
} while(ch!=4);
getch();
}
void push(int x)
{
int x;
if(top==SIZE-1)
{
printf(” stack overflow”);
return;
}
printf(“enter data”);
scanf(“%d”,&x);
top++;
stack[top]=x;
printf(“%d is pushed”,x);
return x;
}
int pop()
{
int x;
if(top==-1)
{
printf(“stack underflow”);
return;
}
printf(“enter data”);
scanf(“%d”,&x);
top–;
x=stack[top];
printf(“%d is poped”,x);
return x;
}
void display(void)
{
int i;
if(top==-1)
{
printf(“stack is empty”);
return;
}
i=top;
while(i>=0)
{
printf(“%d\n”,stack[i]);
i–;
}
}
good