1.定义:
栈(stack)一种特殊(只允许在一端进行插入或删除操作)的线性表。
现实例子:一摞盘子只能在盘子最上面操作,烤串,羽毛球盒放取羽毛球,都只能在顶部
2.栈的术语
栈顶:允许进行插入删除的一端
栈底:不允许进行插入删除的一端
3.栈的特点:
后进先出(Last in First Out)
(给进栈顺序,选合法出栈顺序)
4.栈的基本操作:
5.顺序栈
//顺序栈
#define MaxSize 10
typedef struct{
int data[MaxSize]; //静态数组存放栈中的元素
int top; //栈顶指针
}SqStack;
//初始化栈
void InitStack(SqStack &S){
S.top=-1;
}
//检测栈顶是否为空
bool StackEmpty(SqStack S){
if(S.top == -1)
return true;
else
return false;
}
//新元素入栈
bool Push(SqStack &S,int x){
if(S.top==MaxSize-1)
return false;
S.top = S.top +1;
S.data[S.top]=x;
return t