1、基本概念
栈只是对表插入和删除操作的位置进行了限制,并没有限定插入和删除操作进行的时间。
2、栈的顺序存储结构及实现
进栈:top加1
出栈:top减1
栈空:top= -1
栈满:top= MAX_SIZE-1
3、顺序栈的声明
const int MAX_SIZE=100;
template <class T>
class seqStack
{
public:
seqStack ( ) ;
~seqStack ( );
void Push ( T x );
T Pop ( );
T GetTop ( );
bool Empty ( );
private:
T data[MAX_SIZE];
int top;
}
4、入栈
template <class T>
void seqStack<T>::Push ( T x)
{
if (top==MAX_SIZE-1) throw “溢出”;
top++;
data[top]=x;
}
5、判断是否是空栈
template <class T>
bool seqStack<T>::Empty ()
{
if (top==-1)
return true;
return false;
}
6、取栈顶
template <class T>
T seqStack<T>::GetTop ( )
{
if (Empty()) throw ”空栈” ;
return data[top];
}
7、出栈
template <class T>
T seqStack<T>:: Pop ( )
{
if (top==-1) throw “溢出”;
x=data[top];
top--;
return x;
}