#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(); } |
Description :
This is the one stop educational site for all Electronic and Computer students. If you want to learn something new then we are here to help. We work on Microcontroller projects, Basic Electronics, Digital electronics, Computer projects and also in basic c/c++ programs.
#Home #Sitemap #Resources #Terms of Use
Copyright©2012 electrofriends.com All Rights Reserved
Contact:[email protected]
((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–;
}
}