(单选题)
设数组S[n]作为两个栈S1和S2的存储空间,对任何一个栈只有当S[n]全满时才不能进行进栈操作。为这两个栈分配空间的最佳方案是()。
AS1的栈底位置为0,S2的栈底位置为n-1
BS1的栈底位置为0,S2的栈底位置为n/2
CS1的栈底位置为0,S2的栈底位置为n
DS1的栈底位置为0,S2的栈底位置为1
正确答案
答案解析
两栈共享空间首先两个栈是相向增长的,栈底应该分别指向两个栈中的第一个元素的位置,并注意C++中的数组下标是从0开始的。
相似试题
(单选题)
若用数组S[0..n-1]作为两个栈S1和S2的共同存储结构,对任何一个栈,只有当S全满时才不能作入栈操作。为这两个栈分配空间的最佳方案是()。
(填空题)
若数组s[0..n-1]为两个栈s1和s2的共用存储空间,仅当s[0..n-1]全满时,各栈才不能进行栈操作,则为这两个栈分配空间的最佳方案是:s1和s2的栈顶指针的初值分别为()。
(简答题)
利用两个栈S1和S2模拟一个队列,如何利用栈的运算实现队列的插入和删除操作,请简述算法思想。
(填空题)
设有一个顺序栈S,元素s1,s2,s3,s4,s5,s6依次进栈,如果6个元素的出栈顺序为s2,s3,s6,s5,s1则顺序栈的容量至少应为()。
(填空题)
设n行n列的下三角矩阵A已压缩到一维数组S[1....n*(n+1)/2]中,若按行序为主存储,则A[i][j]对应的S中的存储位置是()。
(单选题)
假定利用数组a[n]顺序存储一个栈,用top表示栈顶指针,用top==n+l表示栈空,该数组所能存储的栈的最大长度为n,则表示栈满的条件是()
(单选题)
假定利用数组a[N]顺序存储一个栈,用top表示栈顶元素的下标位置,用top= =-1表示栈空,用top= =N - 1表示栈满,则该数组所能存储的栈的最大长度为()
(填空题)
当用长度为n的数组顺序存储一个栈时,若用top==n表示栈空,则表示栈满的条件为()。
(单选题)
已知for(;n>=1;n--),下列语句实现将S2所指字符数组中前n个字符复制到S1所指字符数组中,其中代码不正确的是()。