一、共享栈的优点
共享栈是为了有效的利用存储空间,两个栈的空间可以相互调节
二、共享栈的概念
因为栈底位置不变,所以让两个顺序栈共享一个数组空间,两个栈的栈底分别设置在两端,两个栈顶向数组中间延伸。
三、共享栈栈满问题
判断栈满的条件,就是判断两个栈顶的位置的状态,其根本原因是由两个栈顶指针的操作方式决定的。
用入栈操作来说:①栈顶指针先加1,再赋值,那么栈顶指针所指的地方,则最后入栈的元素
②若先赋值,栈顶指针再加1,则指针指向的位置则在最后入栈元素的后面1位,指向的地方也为空值。
下面为会发生的四种情况:
①初始值:top0=-1,top1=10 ,栈底指针都是先加1,再赋值
②初始值:top0=-1,top1=9 ,top0:先加1,再赋值, top1:先赋值,再加1
③初始值:top0=0,top1=10 ,top0:先赋值,再加1 top1:先加1,再赋值
④初始值:top0=0,top1=9 ,栈顶指针都是:先赋值,再加1
此时还有两个剩余空间