A-A+
设数组S[n]作为两个栈S1和S2的存储空间 对任何一个栈只有当S[n]全满时才不能进行进栈
问题详情
设数组S[n]作为两个栈S1和S2的存储空间,对任何一个栈只有当S[n]全满时才不能进行进栈操作。为这两个栈分配空间的最佳方案是()。
A.S1的栈底位置为O,S2的栈底位置为n一1
B.S1的栈底位置为O,S2的栈底位置为n/2
C.S1的栈底位置为O,S2的栈底位置为n
D.S1的栈底位置为0,S2的栈底位置为1请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:A
解析:利用栈底位置不变的特性,可让两个顺序栈共享一个一维数据空间,以互补余缺,实现方法是:将两个栈的栈底位置分别设在存储空间的两端,让它们的栈顶各自向中间延伸。这样,两个栈的空间就可以相互调节,只有在整个存储空间被占满时才发生上溢,这样一来产生上溢的概率要小得多。