一、栈的基本概念
1、栈的定义:限定仅在表尾进行插入或删除操作的线性表,表尾—栈顶,表头—栈底,(如图)不含元素的空表称空栈。
2、栈的特点:先进后出(FILO)或后进先出(LIFO)
二、栈的表示和实现
1、顺序栈
定义:用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素。
顺序栈的存储表示
#define MAXNUM 50 //定义栈中元素的最大个数
//定义顺序栈的存储结构
typedef struct
{
elemtype data[MAXNUM]; //存放栈中元素
int top; //栈顶指针
}sqstack;
顺序栈的基本操作
①初始化
//初始化顺序栈
void initstack(sqstack &s)
{
s.top=-1; //初始化栈顶指针
}
②判栈空
//判栈空
bool stackempty(sqstack s){
if(s.top==-1) //栈满
return true;
else //不空
return false;
}
③进栈