Initial commit
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
Implementing Stack using Class (with constructor etc).
|
||||
|
||||
# include<iostream.h>
|
||||
# include<conio.h>
|
||||
# define SIZE 20
|
||||
|
||||
class stack
|
||||
{
|
||||
int a[SIZE];
|
||||
int tos; // Top of Stack
|
||||
public:
|
||||
stack();
|
||||
void push(int);
|
||||
int pop();
|
||||
int isempty();
|
||||
int isfull();
|
||||
};
|
||||
stack::stack()
|
||||
{
|
||||
tos=0; //Initialize Top of Stack
|
||||
}
|
||||
|
||||
int stack::isempty()
|
||||
{
|
||||
return (tos==0?1:0);
|
||||
}
|
||||
int stack::isfull()
|
||||
{
|
||||
return (tos==SIZE?1:0);
|
||||
}
|
||||
|
||||
void stack::push(int i)
|
||||
{
|
||||
|
||||
if(!isfull())
|
||||
{
|
||||
cout<<"Pushing "<<i<<endl;
|
||||
a[tos]=i;
|
||||
tos++;
|
||||
}
|
||||
else
|
||||
{
|
||||
cerr<<"Stack overflow error !
|
||||
Possible Data Loss !";
|
||||
}
|
||||
}
|
||||
int stack::pop()
|
||||
{
|
||||
if(!isempty())
|
||||
{
|
||||
cout<<"Popping "<<a[tos-1]<<endl;
|
||||
return(a[--tos]);
|
||||
}
|
||||
else
|
||||
{
|
||||
cerr<<"Stack is empty! What to pop...!";
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void reverse(stack s)
|
||||
{
|
||||
stack s2;
|
||||
while(!s.isempty())
|
||||
{
|
||||
s2.push(s.pop());
|
||||
}
|
||||
cout<<"Reversed contents of the stack..."<<endl;
|
||||
while(!s2.isempty())
|
||||
{
|
||||
cout<<s2.pop()<<endl;
|
||||
}
|
||||
}//end of fn.
|
||||
void main()
|
||||
{
|
||||
clrscr();
|
||||
stack s;
|
||||
|
||||
s.push(1);
|
||||
s.push(2);
|
||||
s.push(3);
|
||||
|
||||
reverse(s);
|
||||
getch();
|
||||
}
|
||||
Reference in New Issue
Block a user