赞
踩
判断顺序栈是否为空
top指针和base指针相等
给我们一个栈S,判断是否为空,不为空,则返回false
求顺序栈的长度:栈里头有多少个元素,给我一个顺序栈S,求两个指针的差
清空顺序栈:不管里面存了什么,只要将top指针指向栈底就是空
如果这个栈存在,S.base,有这样一个地址,那我们就 将top指针移下来,移动到和base指针的值相等
销毁顺序栈:不仅里头没有元素了,连这块空间都从内存中释放了,内存中没有这块空间了,它已经返回内存池。
如果当前的栈不为空,我们直接将栈底指针删除掉,delete S.base是直接把数组回归内存里
然后将栈的大小设置为0,top指针和base指针都设置为空,
S.stacksize=0;
S.base=S.top=NULL
将这两行结构叫做栈的一个结构,这三句话直接把结构类型的三个值设置为空
顺序栈的入栈:把元素存到栈顶,然后top指针上移,移到下一个位置
也可能当前的栈已经满了,溢出,
所以需要判断栈是否已经满了
所以第一步是判断是否栈满(top-base和Stacize的值相等)
代码如下:
Push入栈,对谁操作?对S类型,即三个成员的这种结构类型&,将元素e入栈
若不满,就可以正常插入了:将元素e放在top指针所指的这个地方,即给top指针所指的这个元素赋值,那么怎么我们怎么指到指针所指的这个位置啊?
指针运算
指针的*号运算是对指针所指的那块空间进行操作,*top就是取top指针指的那块空间
赋值完成后top++指向下一块空间,这两步可以合并成一步,
这里*S.top的运算优先级高,所以是先将e的值赋值给它,而++在后面,赋值完以后,top指针再++
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。