• 2022-06-03
    中国大学MOOC: 用高级语言编写程序时,可以用一个数组实现两个栈。给定长度为N的数组A如图所示,实现两个栈S1和S2,对任何一个栈只有当数组A的空间用尽时才不能进行进栈操作。这两个栈分配空间的最佳方案是 ()【图片】
  • S1的栈底元素存储在A[0]处,S2的栈底元素存储在A[N-1]处,每个栈的进栈操作都是向着数组中间进行;

    举一反三

    内容

    • 0

      中国大学MOOC: 设两个栈S1和S2共享同一空间数组a[0,1…MAX],为了最大限度利用数组空间,两个栈采用相向增长的方式,top[1]是低端栈s1的栈顶指针,top[2]是高端栈s2的栈顶指针,则栈满的判断条件是( )

    • 1

      在一个用一维数组a[n]表示的顺序栈中,该栈所含元素的个数最少为()个,最多为()个

    • 2

      当两个栈共享一存储区时,栈利用一维数组 stack(1,n)表示,两栈顶指针为 top[1]与 top[2],则当栈 1 空时,top[1]为(__),栈 2 空时 ,top[2]为(__),栈满时为(__);

    • 3

      设两个栈S1和S2共享同一空间数组a[0,1…MAX],为了最大限度利用数组空间,两个栈采用相向增长的方式,top[1]是低端栈s1的栈顶指针,top[2]是高端栈s2的栈顶指针,则栈满的判断条件是( ) A: top[1]==0 B: top[1]==MAX C: top[2]==MAX D: top[1]+1==top[2]

    • 4

      假设用一个长度为50的数组(数组元素的下标从0~49)作为栈的存储空间,栈底指针bottom指向栈底元素,栈顶指针top指向栈顶元素,如果bottom=49,top=30(数组下标),则栈中具有______个元素。