线性表--栈

栈是限定仅在表尾进行插入和删除操作的线性表。因为对栈来说,表位端有其特殊含义,称为栈顶(top),相应的标头称为栈底(bottom),不含元素的空表

称为空栈。

线性表--栈_第1张图片

和线性表类似,栈也有两种存储表示方法。顺序栈,即栈的顺序顺序存储结构是利用一组地址连续的存储单元依次存放自栈底到栈顶的元素。同时

附设指针top指示栈顶元素在顺序栈中的位置。 通常 top = 0 表示空栈。

-----栈的顺序存储表示------

#define STACK_INIT_SIZE 100;

#define STACK_INCREMENT 10;

typedef struct {

 SElemType *base;

 SElemType* top;

 int stacksize;

}SqStack;

线性表--栈_第2张图片

线性表--栈_第3张图片

线性表--栈_第4张图片

栈的链式表示方式如图3.3 。栈的应用  --- 数制转换,括号匹配检验,行编辑程序,迷宫,表达式四则运算

1)  数制转换

线性表--栈_第5张图片

线性表--栈_第6张图片

2)行编辑程序

线性表--栈_第7张图片

线性表--栈_第8张图片

2)迷宫求解

线性表--栈_第9张图片线性表--栈_第10张图片

线性表--栈_第11张图片

线性表--栈_第12张图片

4)表达式四则运算

线性表--栈_第13张图片

线性表--栈_第14张图片

线性表--栈_第15张图片

线性表--栈_第16张图片

栈与递归的实现

线性表--栈_第17张图片

线性表--栈_第18张图片

线性表--栈_第19张图片

线性表--栈_第20张图片

线性表--栈_第21张图片

线性表--栈_第22张图片

 线性表--栈_第23张图片

线性表--栈_第24张图片

你可能感兴趣的:(线性表--栈)