栈是一种后进先出的数据结构,操作中增加一个栈元素是入栈操作。使用顺序栈时,入栈操作可以分如下步骤进行
(1)判断栈是否已满
(2)将元素入栈
先列出栈定义的结构体,详细参考:数据结构-栈的实现-顺序栈的表示
(1)如何判断栈中元素已满
top是栈顶指针,base是栈底指针,stacksize是栈可用的最大容量,因此判断一个栈是否已满,通过栈顶减去栈底,判断是否等于最大容量。栈顶指针与栈底指针之间相减,得到的是元素的个数。
S.top-S.base==S.stacksize
(2)将元素入栈
先看如下图示
空栈时,top和base指针指向相同的位置
a1入栈,base是栈底指针,指向a1元素,top位置上移
a2入栈,base是栈底指针,指向a1元素,a2元素放到top原指向的位置,top指针上移一位。
根据上述的分析,元素入栈,base指针不变,将元素放在top指针原指向的位置,top指针上移一位。
*S.top=eS.top++
完整的代码示例如下