线性表--栈
栈是限定仅在表尾进行插入和删除操作的线性表。因为对栈来说,表位端有其特殊含义,称为栈顶(top),相应的标头称为栈底(bottom),不含元素的空表
称为空栈。
和线性表类似,栈也有两种存储表示方法。顺序栈,即栈的顺序顺序存储结构是利用一组地址连续的存储单元依次存放自栈底到栈顶的元素。同时
附设指针top指示栈顶元素在顺序栈中的位置。 通常 top = 0 表示空栈。
-----栈的顺序存储表示------
#define STACK_INIT_SIZE 100;
#define STACK_INCREMENT 10;
typedef struct {
SElemType *base;
SElemType* top;
int stacksize;
}SqStack;
栈的链式表示方式如图3.3 。栈的应用 --- 数制转换,括号匹配检验,行编辑程序,迷宫,表达式四则运算
1) 数制转换
2)行编辑程序
2)迷宫求解
4)表达式四则运算
栈与递归的实现