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

    内容

    • 0

      将编号为0和1的两个栈存放于一个数组空间V[m]中, 栈底分别处于数组的两端。当第0号栈的栈顶指针top[0]等于-1时该栈为空,当第1号栈的栈顶指针top[1]等于m时该栈为空。两个栈均从两端向中间增长。当向第0号栈插入一个新元素时,使top[0]增1得到新的栈顶位置,当向第1号栈插入一个新元素时,使top[1]减1得到新的栈顶位置。当top[0]+1== top[1]时或top[0] == top[1]-1时,栈空间满,此时不能再向任一栈加入新的元素。 试定义这种双栈(Double Stack)结构的类定义,并实现判栈空、判栈满、插入、删除算法。

    • 1

      将编号为 0 和 1 的两个栈存放于一个数组空间 V[m]中,栈底分别处于数组的两端。当第 0 号栈的栈顶指针 top[0]等于-1 时该栈为空,当第 1 号栈的栈顶指针 top[1]等于 m时该栈为空。两个栈均从两端向中间增长。试编写双栈初始化,判断栈空、栈满、进栈和出栈等算法的函数。双栈数据结构的定义如下: Typedef struct {int top[2],bot[2];    //栈顶和栈底指针  SElemType *V;    //栈数组  int m;      //栈最大可容纳元素个数 }DblStack 

    • 2

      当两个栈共享一个存储区时,栈利用一维数组data[1..n]表示,栈1在低下标处,栈2在高下标处。两栈顶指针为top1和top2则当栈1空时,top1为 ① ,栈2空时 ② ,栈满时为 ③ 。

    • 3

      当两个栈共享一存储区时,栈利用一维数组stack[1…n]表示,初始时两栈顶指针为top1与top2分别指向1和n,入栈操作分别为:stack[top1++]=x和stack[top2--]=x。则,当栈1空时,top1为_______;当栈2空时,top2为_______;栈满时为_______。

    • 4

      假定利用数组a[n]顺序存储一个栈,利用top表示栈顶指针,用top=n+1表示栈空,该数组所能存储的栈的最大长度为n,则表示栈满的条件是______。 A: top=-1 B: top=0 C: top>1 D: top=1