Contents
  1. 1. Stack.h
  2. 2. Stack.cpp

Stack.h

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

#ifndef STACK_H_INCLUDED
#define STACK_H_INCLUDED

template <class T>
class Stack{
private:
int size;
int top;
T* contain;
public:
Stack() : size(0), top(-1), contain(NULL) {}
Stack(int MaxSize);
void push(T & element);
T & top();
void pop();
bool isEmpty();
void MakeEmpty();
};

#endif // STACK_H_INCLUDED

Stack.cpp

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

template <class T>
Stack<T>::Stack(int MaxSize)
{
size = MaxSize;
top = -1;
contain = new T[size];
}

template <class T>
void Stack<T>::push(T & element)
{
assert(tos != size - 1);
contain[++top] = element;
}
template <class T>
void Stack<T>::pop()
{
assert(top != -1);
top--;
}

template <class T>
T& Stack<T>::top()
{
assert(top != -1);
return contain[top];
}

template <class T>
void Stack<T>::MakeEmpty()
{
top = -1;
}

template <class T>
bool Stack<T>::isEmpty()
{
return top == -1;
}
Contents
  1. 1. Stack.h
  2. 2. Stack.cpp