const int maxstack=100;
enum Error_code={success,overflow,underflow};
class Stack{
public:
Stack();
bool empty()const; // 常函数,only read
Error_code pop();
Error_code top(Stack_entry&item)const;
Error_code push(const Stack_entry&item);
private:
int count;
Stack_entry entry[maxstack];
};
//入栈
Error_code Stack ::push(const Stack_entry&item)
{
Error_code outcome=success;
if(count>=maxstack)
outcome=overflow;
else
entry[count++]=item;
return outcome;
}
//出栈
Error_code Stack::pop()
{
Error_code outcome=success;
if(count==0)
outcome=underflow;
else
--count;
return outcome;
}
//访问栈顶元素
Error_code Stack::top(Stack_entry&item)const
{
Error_code outcome=success;
if(count==0)
outcome=underflow;
else
item=entry[count-1];
return outcome;
}
bool Stack::empty()const
{
bool outcome=true;
if(count>0)outcome=false;
return outcome;
}
//栈的初始化
Stack::Stack()
{
count=0;
}