stack implementation by struct?
can someone just tell me how this code actually works, and how can i let the user enter numbers, which will display in LIFO ?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
#include <iostream>
using namespace std;
const int SIZE=10;
struct stack
{
stack ();
void push (char ch);
char pop();
private:
char stackData[SIZE];
int topOfStack;
};
stack::stack()
{
cout<<"Constructing a stack\n";
topOfStack=0;
}
void stack::push(char ch)
{
if(topOfStack==SIZE)
{
cout<<"Stack is full\n";
return;
}
stackData[topOfStack] = ch;
topOfStack++;
}
char stack::pop()
{
if(topOfStack==0)
{
cout<<"Stack is empty\n";
return 0;
}
topOfStack--;
return stackData[topOfStack];
}
int main()
{
stack stackObject1,stackObject2;
int i;
stackObject1.push('a');
stackObject2.push('x');
stackObject1.push('b');
stackObject2.push('y');
stackObject1.push('c');
stackObject2.push('z');
for(i=0;i<3;i++)
cout<<"Pop stackObject1: "<<stackObject1.pop()<<endl;
for(i=0;i<3;i++)
cout<<"Pop stackObject2: "<<stackObject2.pop()<<endl;
return 0;
}
|
Topic archived. No new replies allowed.