itgle.com
更多“若一个栈以一维数组V[1..n]存储,初始栈顶指针top设为n+1,则元素x进栈的正确操作是()。”相关问题
  • 第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


    参考答案:
      两栈共享向量空间,将两栈栈底设在向量两端,初始时,左栈顶指针为-1,右栈顶为m。两栈顶指针相邻时为栈满。两栈顶相向、迎面增长,栈顶指针指向栈顶元素。
      [算法描述]
      (1) 栈初始化
      int Init()
      {S.top[0]=-1;
      S.top[1]=m;
      return 1; //初始化成功
      }
      (2) 入栈操作:
      int push(stk S ,int i,int x)
      ∥i为栈号,i=0表示左栈,i=1为右栈,x是入栈元素。入栈成功返回1,失败返回0
      {if(i<0||i>1){ cout<<“栈号输入不对”<  if(S.top[1]-S.top[0]==1) {cout<<“栈已满”<  switch(i)
      {case 0: S.V[++S.top[0]]=x; return(1); break;
      case 1: S.V[--S.top[1]]=x; return(1);
      }
      }∥push
      (3) 退栈操作
      ElemType pop(stk S,int i)
      ∥退栈。i代表栈号,i=0时为左栈,i=1时为右栈。退栈成功时返回退栈元素
      ∥否则返回-1
      {if(i<0 || i>1){cout<<“栈号输入错误”<  switch(i)
      {case 0: if(S.top[0]==-1) {cout<<“栈空”<  else return(S.V[S.top[0]--]);
      case 1: if(S.top[1]==m { cout<<“栈空”<  else return(S.V[S.top[1]++]);
      }∥switch
      }∥算法结束
      (4) 判断栈空
      int Empty();
      {return (S.top[0]==-1 && S.top[1]==m);
      }
      [算法讨论]
      请注意算法中两栈入栈和退栈时的栈顶指针的计算。左栈是通常意义下的栈,而右栈入栈操作时,其栈顶指针左移(减1),退栈时,栈顶指针右移(加1)。

  • 第2题:

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


    正确答案:20
    20

  • 第3题:

    若一个栈用数组data1..n存储,初始栈顶指针top为1,则以下元素x进栈的正确操作是()。

    A.top++;datatop=x;

    B.datatop=x;top++;

    C.top;datatop=x;

    D.datatop=x;top―


    参考答案:B

  • 第4题:

    若一个栈以向量V[1..n]存储,且空栈的栈顶指针top为n+1,则将元素x入栈的正确操作是______。

    A.top=top+1;V[top]=x;

    B.V[top]=x;top=top+1;

    C.top=top-1;V[top]=x;

    D.V[top]=x;top=top-1;

    A.

    B.

    C.

    D.


    正确答案:C

  • 第5题:

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


    正确答案:20
    20 解析:栈是限定在—端进行插入与删除的线性表。在栈中,允许插入与删除的—端称为栈项,而不允许插入与删除的另—端称为栈底。栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。即栈是按照“先进后出”或“后进先出”的原则组织据的,因此,栈也被称为“先进后出”表或“后进先出”表。通常用指针top来指示栈顶的位置,用指针bottom指向栈底。由题意可知栈顶指针top=30,bottom=49,则栈中具有的元素应该为bottom-top+1即49-30+1=20。

  • 第6题:

    当利用大小为N的数组顺序存储一个栈时,假定用栈顶指针top=N+1表示栈空,则向这个栈插入一个元素时,首先应执行______语句修改top指针。

    A.top:=top+1

    B.top:=top-1

    C.top:=0

    D.top:=N


    正确答案:B
    解析:由题可知该题栈底为高地址,因此向栈中插入一数据时指向栈顶的指针减1。

  • 第7题:

    若一个栈以向量V[1.n]存储,初始栈顶指针top为n+1,则下面x进栈的正确操作是()。

    A.top=top+1;V[top]=x
    B.V[top]=x;top=top+1
    C.top=top-1;V[top]=x
    D.V[top]=x;top=top-1

    答案:C
    解析:
    栈是运算受限的线性表,只允许在栈顶进行插入和删除操作。本题中栈顶指针为n+1,该数组将栈顶放在了下标大的一端,所以在进行人栈操作时top指针应该进行减1操作。通常元素进栈的操作为:先移动栈顶指针后存入元素。

  • 第8题:

    设top是一个链栈的栈顶指针,栈中每个结点由一个数据域data和指针域next组成,设用x接收栈顶元素,则出栈操作为()。

    Ax=top->data;top=top->next;

    Btop=top->next;x=top->data;

    Cx=top->next;top=top->data;

    Dtop->next=top;x=top->data;


    A

  • 第9题:

    假定利用数组A[N]顺序存储一个栈,top表示栈顶指针,已知栈未满,则x入栈时所执行的操作是()。

    • A、a[--top]=x
    • B、a[top--]=x
    • C、a[++top]=x
    • D、a[top++]=x

    正确答案:D

  • 第10题:

    设top是一个链栈的栈顶指针,栈中每个结点由一个数据域data和指针域next组成,设用x接收栈顶元素,则出栈操作为()。

    • A、x=top->data;top=top->next;
    • B、top=top->next;x=top->data;
    • C、x=top->next;top=top->data;
    • D、top->next=top;x=top->data;

    正确答案:A

  • 第11题:

    单选题
    在栈的操作中,顺序栈s,栈顶指针是top指向栈顶元素,用e接收出栈元素,则出栈正确的是()
    A

    e=s[top--];

    B

    s[--top]=e;

    C

    e=s[++top];

    D

    s[++top]=e;


    正确答案: A
    解析: 暂无解析

  • 第12题:

    单选题
    若一个栈以向量V[1..n]存储,初始栈顶指针top设为n+1,则元素x进栈的正确操作是()。
    A

    top++; V[top]=x;

    B

    V[top]=x; top++;

    C

    top--; V[top]=x;

    D

    V[top]=x; top--;


    正确答案: D
    解析: 初始栈顶指针top为n+1,说明元素从数组向量的高端地址进栈,又因为元素存储在向量空间V[1..n]中,所以进栈时top指针先下移变为n,之后将元素x存储在V[n]。

  • 第13题:

    若一个栈以向量V[1..n]存储,初始栈顶指针top设为n+1,则元素x进栈的正确操作是()。

    A.top++;V[top]=x;

    B.V[top]=x;top++;

    C.top--;V[top]=x;

    D.V[top]=x;top--;


    参考答案:C
    解释:初始栈顶指针top为n+1,说明元素从数组向量的高端地址进栈,又因为元素存储在向量空间V[1..n]中,所以进栈时top指针先下移变为n,之后将元素x存储在V[n]。

  • 第14题:

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

    A.50

    B.19

    C.1

    D.20


    正确答案:B
    当前栈中的所有元素的个数就是用栈底指针减去栈顶指针。

  • 第15题:

    若一个栈用数组data[ 1..n]存储,初始栈顶指针top为n,则以下元素x进栈的正确操作是()。

    A.top++;data[top]=x;

    B.data[top]=x;top++;

    C.top--;data[top]=x;

    D.data[top]=x;top―


    参考答案:D

  • 第16题:

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


    正确答案:20
    20 解析:栈是限定在一端进行插入与删除的线性表。在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。栈项元素总是最后被插入的元素,从而也是最先能被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。即栈是按照“先进后出”或“后进先出”的原则组织数据的,因此,栈也被称为“先进后出”表或“后进先出”表。通常用指针top来指示栈顶的位置,用指针bottom指向栈底。由题意可知栈顶指针top=30,bottom=49,则栈中具有的元素应该为bottom-top+1即49-30+1=20。

  • 第17题:

    若一个栈以向量V[1..n]存储,初始栈顶指针top为n+1,则下面x进栈的正确操作是()。

    A.top=top+1;V[top]=x

    B.V[top]=x;top=top+1

    C.top=top-1;V[top]=x

    D.V[top]=x;top=top-1


    正确答案:C

  • 第18题:

    设栈的存储空间为S(1:m),初始状态为top=m+1。经过一系列入栈与退栈操作后,top=1。现又要将一个元素进栈,栈顶指针t叩值变为( )。

    A.发生栈满的错误

    B.2

    C.m

    D.0


    正确答案:A
    栈是一种特殊的线性表,它所有的插入与删除都限定在表的同一端进行。人栈运算即在栈顶位置插入一个新元素,退栈运算即是取出栈顶元素赋予指定变量。题目中初始状态为top=m+1,可知入栈栈顶指针top=top一1,出栈栈顶指针top=top+1,由于栈长为rn,当top=1时栈满,不能再进行人栈操作。故选A选项。

  • 第19题:

    设top是一个链栈的栈顶指针,栈中每个结点由一个数据域data和指针域next组成,设用x接收栈顶元素,则取栈顶元素的操作为()。

    Atop->data=x;

    Btop=top->next;

    Cx=top->data;

    Dx=top->data;top=top->next;


    A

  • 第20题:

    若一个栈以向量V[1..n]存储,初始栈顶指针top设为n+1,则元素x进栈的正确操作是()。

    • A、top++; V[top]=x;
    • B、V[top]=x; top++;
    • C、top--; V[top]=x;
    • D、V[top]=x; top--;

    正确答案:C

  • 第21题:

    假定利用数组a[n]顺序存储一个栈,用top表示栈顶指针,用top==n+l表示栈空,该数组所能存储的栈的最大长度为n,则表示栈满的条件是()

    • A、top == -1
    • B、top == 0
    • C、top>l
    • D、top == 1

    正确答案:D

  • 第22题:

    设top是一个链栈的栈顶指针,栈中每个结点由一个数据域data和指针域next组成,设用x接收栈顶元素,则取栈顶元素的操作为()。

    • A、top->data=x;
    • B、top=top->next;
    • C、x=top->data;
    • D、x=top->data;top=top->next;

    正确答案:A

  • 第23题:

    单选题
    设top是一个链栈的栈顶指针,栈中每个结点由一个数据域data和指针域next组成,设用x接收栈顶元素,则取栈顶元素的操作为()。
    A

    top->data=x;

    B

    top=top->next;

    C

    x=top->data;

    D

    x=top->data;top=top->next;


    正确答案: A
    解析: 暂无解析

  • 第24题:

    单选题
    假定利用数组A[N]顺序存储一个栈,top表示栈顶指针,已知栈未满,则x入栈时所执行的操作是()。
    A

    a[--top]=x

    B

    a[top--]=x

    C

    a[++top]=x

    D

    a[top++]=x


    正确答案: B
    解析: 暂无解析