ADT Stack {
數據對象:
D = {ai | ai ∈ ElemSet,i = 1,2,3,....,n, n ≥ 0} // ElemSet 表示元素的集合
數據關系:
R1={<ai-1, ai> | ai-1 , ai∈D,i=2,...,n} // ai-1為前驅,ai為后繼
約定 an 端為棧頂,a1 端為棧底
基本操作:初始化、進棧、出棧、取棧頂元素等
} ADT Stack
InitStack(&S)初始化操作
操作結果:構造一個空棧 S
DestroyStack(&S)銷毀棧操作
初始條件:棧S已存在
操作結果:棧S被銷毀
StackEmpty(S)判定棧是否為空棧
初始條件:棧S已存在
操作結果:若棧S為空棧,則返回TRUE,
若棧S為非空,則返回FALSE。
StackLength(S)求棧的長度
初始條件:棧S已存在
操作結果:返回棧S的元素個數,即棧的長度
GetTop(S,&e)取棧頂元素
初始條件:棧S已存在且非空
操作結果:用e返回S的棧頂元素
ClearStack(&S)棧指控操作
初始條件:棧S已存在
操作結果:將S清為空棧
Push(&S,e)入棧操作
初始條件:棧S已存在
操作結果:插入元素e為新的棧頂元素
Pop(&S,&e)出棧操作
初始條件:棧S存在且非空
操作結果:刪除棧SD棧頂元素an,並用e返回其值