

template <typename T,int N>
class tstack{
    T _stack[N];
    int _sp;
public:
    tstack();
    void push(T );
    void pop();
    T top();
};

template <typename T, int N>
tstack<T,N>::tstack()
{
    _sp = 0;
}

template <typename T, int N>
void tstack<T,N>::push(T data)
{
    if (_sp<N)
        _stack[_sp++];
}

template <typename T, int N>
T tstack<T,N>::pop()
{
    if (_sp)
        return _stack[--_sp];
    return 0;
}

template <typename T, int N>
T tstack<T,N>::top()
{
    return _stack[_sp];
}

