单选题
👁️ 浏览量:

试题题干

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

A

top1+1=top2

B

 top1=top2 

C

 top2+1=top2

D

top1+top2=max

参考答案

正确答案:

试题解析

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

【拓展】

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