在栈构造之前和销毁之后,base的值为NULL
i
ttop
栈顶指针
i
t
stacksize
当前已分配的存储空间,以元素为单位
SqStack
i
tI
itStackSqStackS
构造一个空栈S
ifSbasei
tmallocSTACK_INIT_SIZEsizeofi
t
exitOVERFLOW
存储分配失败
StopSbase
SstacksizeSTACK_INIT_SIZE
retur
OK
i
tStackEmptySqStackS若栈S为空栈,则返回TRUE,否则返回FALSE
ifStopSbaseretur
TRUE
elseretur
FALSE
i
tPushSqStackSi
te插入元素e为新的栈顶元素
fifStopSbaseSstacksize栈满,追加存储空间
Sbasei
treallocSbaseSstacksizeSTACKINCREMENTsizeofi
tifSbase
exitOVERFLOW存储分配失败StopSbaseSstacksizeSstacksizeSTACKINCREMENTStoperetur
OK
i
tPopSqStackSi
te若栈不空,则删除S的栈顶元素,用e返回其值,并返回OK;否则返回ERROR
ifStopSbaseretur
ERROR
eStopretur
OKi
tmai
SqStacksi
tiejk1charchN0pbN0ifI
itStacks初始化栈成功
pri
tf