设两个数据元素类型一致的栈共享一维数组空间data[max]成为双栈,两个栈的栈底分别设在数组两端,这两个栈的栈顶变量分别为top1和top2,且top2>=top1,则下列会发生“上溢”情况的是( )

设两个数据元素类型一致的栈共享一维数组空间data[max]成为双栈,两个栈的栈底分别设在数组两端,这两个栈的栈顶变量分别为top1和top2,且top2>=top1,则下列会发生“上溢”情况的是( )


A、

top1+1=top2


B、

 top1=top2 


C、

 top2+1=top2


D、

top1+top2=max


【正确答案】:A
【题目解析】:

在某些应用中,为了节省空间,让两个数据元素类型一致的栈共享一组数组空间data[max],成为双栈,两个栈的栈底分别设在数组两端,让两个栈彼此迎面“增长”,两个栈的栈顶变量分别为top1、top2,仅当两个栈的栈顶位置在中间相遇时(top1+1=top2)才发生“上溢”。

【拓展】

当栈顶下标值top=0,如果此时做出栈运算,则产生“下溢”。
当栈中的数据元素已经填满了, 如果再进行进栈操作,会发生“上溢”。


Top