|
栈的顺序存储用向量作为栈的存储结构,向量S表示栈,m表示栈的大小,用一栈指针top指向栈顶位置,S[top]表示栈顶元素,当在栈中进行插入、删除操作时,都要移动栈指针;而当top=m-1时,则栈满,当top=-1时,则栈空。同时为了避免浪费空间可以采用双栈机制,即向量的两端为栈底。
|
|
|
|
|
|
.由于C语言数组下标的范围是从0至StackSize-1,初始化设置为sq.top=-1。
|
|
|
.栈空条件为sq.top==-1,栈满条件为sq.top==StackSize-1。
|
|
|
|
.元素压栈的规则为:在栈不满时,先改变栈顶指针(top=top+1),再压栈。出栈时,在栈非空时,先取栈顶元素的值,再修改栈顶指针(top=top-1)。
|
|
|
|
|
1)初始化InitStack(SqStack *S)
|
|
|
|
2)判空StackEmpty(SqStack S)
|
|
|
|
3)压栈Push(SqStack *S, ElemType e)
|
|
|
|
4)出栈Pop(SqStack *S, ElemType *e)
|
|
|
|
5)取栈顶GetTop(SqStack *S, ElemType *e)
|
|
|
|
6)清栈ClearStack(SqStack *S)
|
|
|
|