文章目录
- 一、栈
- 1、栈的定义
- 2、顺序栈
- 2.1、初始化
- 2.2、进栈
- 2.3、出栈
- 2.4、读取
- 3、链栈
一、栈
1、栈的定义
逻辑结构:与普通线性表相同数据的运算:插入、删除操作有区别
2、顺序栈
2.1、初始化
”.”适用于结构体变量,”->”适用于结构体指针变量
typedef struct{
int data[MaxSize];
int top;
}SqStack;
void InitStack(SqStack &S){
S.top=-1;
}
2.2、进栈
bool Push(SqStack &S,int x){
if(S.top==MaxSize-1)
return false;
S.top=S.top+1;
S.data[S.top]=x;
return true;
}
2.3、出栈
bool Pop(SqStack &S,int &x){
if(S.top==-1)
return false;
x=S.data[S.top];
S.top=S.top-1;
return true;
}
2.4、读取
bool GetTop(SqStack S,int &x){
if(S.top==-1)
return false;
x=S.data[S.top];
return true;
}