一、栈的定义
栈(stack)是一种只能在同一端进行插入或删除操作的线性表。
表中允许进行插入、删除操作的一端称为栈顶(top),表的另一端称为栈底(bottom)。
栈的插入操作通常称为进栈或入栈(push),栈的删除操作通常称为退栈或出栈(pop)。
后进先出,即后进栈的元素先出栈。
每次进栈的元素都作为新栈顶元素,每次出栈的元素只能是当前栈顶元素。
栈也称为后进先出表或者先进后出表。
例题:一个栈的进栈序列是a、b、c、d、e,则栈的不可能的输出序列是(C)。
A.edcba B.decba
C.dceab D.abcde
栈的顺序存储结构及其基本运算算法实现
顺序栈实现
顺序栈
顺序栈的四要素如下:
① 栈空条件:len(data)==0或者not data。
② 栈满条件:由于data列表可以动态扩展,所以不必考虑栈满。
③ 元素e进栈操作:将e添加到栈顶处。
④ 出栈操作:删除栈顶元素并返回该元素。
顺序栈类SqStack
顺序栈的基本运算算法
(1)判断栈是否为空empty()