栈和队列其实都是操作受限制的线性表。栈是只允许在一端进行插入或删除操作的线性表(先进后出)。队列是只允许在表的一端进行插入,另一端进行删除的线性表(先进先出)。
栈包含顺序栈,链栈 ,共享栈。
顺序栈 采用顺序存储
存储类型
#define MAXSIZE 50;
//存储结构
typedef struct{
Elemtype data[MAXSIZE];//数据域,存放栈中元素
int top;//栈顶指针
}SqStack;
栈顶指针:初始时为S.top=-1 栈顶元素:S.data[S.top] 栈长:S.top+1
基本操作如下
//初始化操作
void InitStack(SqStack &S){
S.top=-1;
}
//判断栈空
bool StackEmpty(SqStack S){
if(S.top==-1) return true;//栈空返回true
return false;//栈不空返回false
}
//进栈
//栈不满时,进栈指针加