栈: 是限定在表尾进行插入或删除操作的线性表. -----后进先出
栈顶: 表尾端;
栈底: 表头端;
栈又分为: 顺序栈和链栈;
顺序栈的定义
-------顺序栈的存储结构---------
#define MAXSIZE 100 //顺序栈存储空间的初始分配量
typedef struct
{
SElemType * base; //栈底指针
SElemType * top; //栈顶指针
int stacksize; //栈可用的最大容量
}SqStack;
初始化
- 为顺序栈动态分配一个最大容量为MAXSIZE的数组空间,使base 指向这段空间的基址,即栈底;
- 栈顶指针top初始为base,表示栈为空。
- stacksize置为栈的最大容量MAXSIZE ;
Status InitStack(SqStack &S)
{ //构造一个空栈S
S.base=new SElemType[MAXSIZE];// 为顺序栈动态分配一个最大容量为MAXSIZE的数组空间
if (!S.base) exit(overflow);//存储分配失败
S.top=S.base; //top初始为base,空栈
S.stacksize=MAXSIZE; //stacksize置为栈的最大容量MAXSIZE
return ok;
}