问题 单项选择题

为了增加内存空间的利用率和减小溢出的可能性,由两个栈共享一片连续的内存空间时,应将两个栈的栈底分别设在这片内存空间的两端。如此只有当( )时,才产生上溢。

A.两个栈的栈顶同时到达栈空间的中心点

B.两个栈的栈顶在栈空间的某一位置相遇

C.其中一个栈的栈顶到达栈空间的中心点

D.两个栈不空,且一个栈的栈顶到达另一个栈的栈底

答案

参考答案:B

解析: 在一个程序中需要同时使用具有相同成分类型的两个栈时,为避免造成存储空间的浪费,应采用双进栈操作。为两个栈共同开辟一个连续的存储空间,一个栈的栈底为该空间的始端,另一个栈的栈底为该存储空间的末端。当元素进栈时都从此存储空间的两端向中间“延伸”。如此,只有当两个栈的栈顶在该存储空间的某处相遇时,才会发生上溢。

单项选择题
判断题