一、栈的定义
- 栈是一种只能在一段进行插入或删除操作的线性表。
- 栈顶:允许进行插入或删除操作的一端,由一个栈顶指针来指示。
- 栈底:相对于栈顶的另一端,是固定不变的。
- 栈的主要特点就是先进后出。依照存储结构可分为:顺序栈和链式栈
- 对于非连续的输入输出,出栈序列中每一个元素后面所有比他小的元素组成一个递减序列。
- 合法出栈序列个数 f ( n ) = C 2 n n / ( n + 1 ) f(n)=C_{2n}^n/(n+1) f(n)=C2nn/(n+1)
二、顺序栈
- 栈空状态:s.top==-1
- 栈满状态:s.top=maxSize-1
- 非法状态(上溢和下溢):栈满就是一种继续入栈就会上溢的状态,对应的栈下溢就是栈空的时候继续出栈所造成的结果。
顺序栈定义
// 顺序栈定义
typedef struct
{
int</