📄 astack.h
字号:
//AStack.h 2008 3 27
template <class Elem>
class AStack
{
private:
int size;
Elem* arrayStack;
int fence;
public:
AStack(int sz = 100)
{
size = sz;
arrayStack = new Elem[size];
fence = 0;
}
~AStack()
{
delete [] arrayStack;
fence = 0;
}
void Clear()
{
fence = 0;
}
bool Empty()const
{
if(fence == 0)
return true;
else
return false;
}
bool Push(const Elem& a)
{
if(fence == size)
{
cerr << "Error:The stack is full,you can not push!" << endl;
return false;
}
arrayStack[fence++] = a;
return true;
}
int Size()const
{
//查看栈中的元素的个数
return fence;
}
Elem Top()const
{
if(fence == 0)
{
cerr << "Error:The stack is empty,so you can not ancess the top value!" << endl;
//强制返回一个Elem类型的0值
return (Elem)0;
}
//attention
return arrayStack[fence - 1];
}
bool Top(Elem& a)const
{
if(fence == 0)
return false;
a = arrayStack[fence];
return true;
}
bool Pop()
{
if(fence == 0)
{
cerr << "Error:there is nothing in stack,pop nothing!" << endl;
return false;
}
fence--;
return true;
}
bool PPop(Elem& a)
{
if(fence == 0)
return false;
a = Top();
Pop();
return true;
}
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -