目录
定义
线性表是具有相同数据类型的n(n0)个数据元素的有限序列,其中n为表长,当n=0时线性表是一个空表。若用L命名线性表,则其一般表示为
栈(Stack)是只允许在一端进行插入或删除操作的线性表。
空栈:没有数据元素。
栈顶:允许插入和删除的一端。
栈底:不允许插入和删除的一端。
特点:后进先出 Last In First Out(LIFO)
基本操作
InitStack(&S): 初始化栈。构造一个空栈S,分配内存空间。
DestroyStack(&S): 销毁栈。销毁并释放栈S所占用的内存空间。
Push(&S,x): 进栈,若栈S未满,则将x加入使之成为新栈顶。
Pop(&S,&x): 出栈,若栈S非空,则弹出栈顶元素,并用x返回。
GetTop(S,&x): 读栈顶元素,若栈S非空,则用x返回栈顶元素。
StackEmpty(S): 判断一个栈S是否为空,若栈S为空,则返回true,否则返回false。
注:卡特兰(Catalan)数,n个不同元素进栈,出栈元素不同排列的个数为。可采用数学归纳法证明。