//SeqStack.h

#pragma once
#include<iostream>
using namespace std;
const int StackSize = 100;
template<typename datatype>
class SeqStack
{
public:
    SeqStack();
    ~SeqStack();
    void Push(datatype x);
    datatype Pop();
    datatype GetTop();
    int Empty();
    datatype data[StackSize];
    int top;
};
template<typename datatype>
SeqStack<datatype>::SeqStack()
{
    top = -1;
}
template<typename datatype>
SeqStack<datatype>::~SeqStack() {}
template<typename datatype>
void SeqStack<datatype>::Push(datatype x)
{
    if (top == StackSize - 1)
        cout << "栈已满,无法加入元素";
    else
        data[++top] = x;
}
template<typename datatype>
datatype SeqStack<datatype>::Pop()
{
    datatype x;
    if (top == -1)
    {
        cout << "栈为空,无法输出元素";
        return 0;
    }
    else
    {
        x = data[top--];
        return x;
    }
}
template<typename datatype>
datatype SeqStack<datatype>::GetTop()
{
    return data[top];
}

template<typename datatype>
int SeqStack<datatype>::Empty()
{
    if (top == -1)
        return 0;
    else
        return 1;
}