1.栈的基本概念
栈是一种只能在一端进行插入或删除操作的线性表。其中允许进行插入或删除操作的一端称为(Top),栈顶由一个称为栈顶指针的位置指示器(其实就是一个变量,对于顺序栈,就是记录栈顶元素在数组位置标号的一个整型变量;对于链式栈,就是记录栈顶元素所在结点地址的指针)来指示,它是动态变化的。表的另一端称为栈底,栈底是固定不变的。栈的插入和操作一般称为入栈和出栈。本篇文章以顺序栈为主。
栈的特点
先进先出(FILO)。
栈的存储结构
栈有两种主要的存储结构:顺序栈和链式栈。栈是一种在操作上稍加限制的线性表,即其本质就是线性表,而线性表有两种主要的存储结构—顺序表和链式表,因此栈有两种存储结构。
栈的数学性质
当n个编号元素以某种顺序进栈,并且可以在任意时刻出栈,所获得的编号元素排列的数目N恰好满足Catalan函数的计算,即
2.顺序栈的基本操作
1.顺序栈定义
typedef struct{