栈的抽象数据类型(6)
ADT Stack { Dataset:D={ ai|ai∈ElemType, i=1,2,…,n, n≥0 } Relationset:R1={ <ai-1, ai>|ai-1, ai∈D, i=2,...,n } 约定an端为栈顶,a1端为栈底。 OperationSet:
(1)InitStack(&S) 实现功能:构造一个空栈S。
(2)DestroyStack(&S) 初始条件:栈S已存在。 实现功能:销毁栈S。
(3)ClearStack(&S) 初始条件:栈S已存在。 实现功能:清空栈S。
(4)StackEmpty(S) 初始条件:栈S已存在。 实现功能:判断栈S是否为空栈,若是则返回TRUE,否则返回FALSE。
(5)StackLength(S) 初始条件:栈S已存在。 实现功能:返回栈S中的元素个数,即栈的长度。
(6)GetTop(S, &e) 初始条件:栈S已存在且非空。 实现功能:返回S的栈顶元素,其值存放在e中。
(7)Push(&S, e) 初始条件:栈S已存在。 实现功能:插入元素e作为新的栈顶元素。
(8)Pop(&S, &e) 初始条件:栈S已存在且非空。 实现功能:删除S的栈顶元素,并用e返回其值。
(9)StackTraverse(S, visit( )) 初始条件:栈 S 已存在且非空,visit( )为元素的访问函数。 实现功能:从栈底到栈顶依次对S的每个元素调用函数visit( ),一旦visit( )失败,则操作失败。 } ADT Stack