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.