itgle.com

设将整数1、2、3、4依次进栈,只要出栈时栈非空,则可将出栈操作按任何次序夹人其中;请回答下述问题:1.当人、出栈次序为Push(1),Pop(),Push(2),Push(3),Pop(),Push(4),Pop(),出栈的数字序列为何?(这里Push(i)表示i进栈,Pop()表示出栈)(26)2.能否得到出栈序列1、4、2、3和1、4、3、2?答案为(27)。3.请分析研究1、2、3、4的24种排列中,(28)序列是可以通过相应的入、出栈操作得到的。A.1,3,4B.1,4,2,3C.1,4,3D.

题目

设将整数1、2、3、4依次进栈,只要出栈时栈非空,则可将出栈操作按任何次序夹人其中;请回答下述问题:

1.当人、出栈次序为Push(1),Pop(),Push(2),Push(3),Pop(),Push(4),Pop(),出栈的数字序列为何?(这里Push(i)表示i进栈,Pop()表示出栈)(26)

2.能否得到出栈序列1、4、2、3和1、4、3、2?答案为(27)。

3.请分析研究1、2、3、4的24种排列中,(28)序列是可以通过相应的入、出栈操作得到的。

A.1,3,4

B.1,4,2,3

C.1,4,3

D.3,4,1


相似考题
更多“设将整数1、2、3、4依次进栈,只要出栈时栈非空,则可将出栈操作按任何次序夹人其中;请回答下述问题: ”相关问题
  • 第1题:

    若push、pop分别表示入栈、出栈操作,初始栈为空且元素1、2、3依次进栈,则经过操作序列push、push、pop、pop、push、pop之后,得到的出栈序列为(29)。

    A.321

    B.213

    C.231

    D.123


    正确答案:B
    解析:栈的运算特点为在同一端插入和删除元素,即先入后出,总是栈顶元素先出栈,新元素总是压在栈顶元素之上并成为栈顶元素。初始栈为空,如下图(a)所示。对于元素 1、2、3,依照操作序列push、push、pop、pop、push、pop,可以得到出栈序列213,其过程为:第一个push操作将元素1压入栈中,如下图(b)所示:第二个push操作将元素2压入栈中,如下图(c)所示:第一个pop将栈顶元素2弹出栈,新栈顶元素为1,如下图(d)所示;第二个pop将栈顶元素1弹出栈,导致栈空,如下图(e)所示:其后的push和pop分别将元素3压入和弹出栈,操作结果如下图(f)和(g)所示。

  • 第2题:

    设从键盘输入一整数的序列:a1, a2, a3,…,an,试编写算法实现:用栈结构存储输入的整数,当ai≠-1时,将ai进栈;当ai=-1时,输出栈顶整数并出栈。算法应对异常情况(入栈满等)给出相应的信息。


    参考答案:
      [算法描述]
      #define maxsize 栈空间容量
      void InOutS(int s[maxsize])
      //s是元素为整数的栈,本算法进行入栈和退栈操作。
      {int top=0; //top为栈顶指针,定义top=0时为栈空。
      for(i=1; i<=n; i++) //n个整数序列作处理。
      {cin>>x); //从键盘读入整数序列。
      if(x!=-1) // 读入的整数不等于-1时入栈。
      {if(top==maxsize-1){cout<<“栈满”<  else s[++top]=x; //x入栈。
      }
      else //读入的整数等于-1时退栈。
      {if(top==0){ cout<<“栈空”<  else cout<<“出栈元素是”<< s[top--]<  }
      }//算法结束。

  • 第3题:

    若pllsh、pop分别表示入栈、出栈操作,初始栈为空且元素1、2、3依次进栈,则经过操作序列push、push、pop、pop、push、pop之后,得到的出栈序列为 ______。

    A.321

    B.213

    C.231

    D.123

    A.

    B.

    C.

    D.


    正确答案:B

  • 第4题:

    若进栈序列为1,2,3,4,假定进栈和出栈可以穿插进行,则可能的出栈序列是( )。

    A.2,4,1,3

    B.3,1,4,2;

    C.3,4,1,2

    D.1,2,3,4


    正确答案:D
    解析:由于进栈和出栈可以穿插进行,所以1进,1出,2进, 2出,3进,3出,4进,4出。可以看出选项D)满足条件。

  • 第5题:

    a、b、c、d、e、f依次进栈、进栈、出栈、进栈、进栈、出栈、进栈的操作,则操作完后,栈S的栈顶元素为()。

    A.a

    B.b

    C.d


    答案:C

  • 第6题:

    已知栈S 初始为空,用 I 表示入栈、O表示出栈,若入栈序列为a1a2a3a4a5,则通过栈 S 得到出栈序列a2a4a5a3a1的合法操作序列( )。

    A.IIOIIOIOOOB.IOIOIOIOIOC.IOOIIOIOIOD.IIOOIOIOOO


    正确答案:A

  • 第7题:

    已知栈S初始为空,用I表示入栈、O表示出栈,若入栈序列为a1a2a3a4a5,则通过栈S得到出栈序列a2a4a5a3a1的合法操作序列(58)。

    A.IIOIIOIOOO
    B.IOIOIOIOIO
    C.IOOIIOIOIO
    D.IIOOIOIOOO

    答案:A
    解析:
    操作步骤:a1a2入,a2出,a3a4入,a4出,a5入,a5出,a3出,a1出。

  • 第8题:

    若让元素1,2,3,4依次进栈,则出栈次序不可能出现()的情况。

    • A、 3,2,1,4
    • B、 4,3,2,1
    • C、 2,1,3,4
    • D、 1,4,2,3

    正确答案:D

  • 第9题:

    设有一个非空的链栈,栈顶指针为hs,要进行出栈操作,用x保存出栈结点的值,栈结点的指针域为next,则可执行x=hs->data;()。


    正确答案:hs=hs->next;

  • 第10题:

    问答题
    设将整数1,2,3,4依次进栈,但只要出栈时栈非空,则可将出栈操作按任何次序夹入其中,请回答下述问题: (1)若入、出栈次序为Push(1),Pop(),Push(2),Push(3),Pop(),Pop(),Push(4),Pop(),则出栈的数字序列为何?(这里Push(i)表示i进栈,Pop()表示出栈) (2)能否得到出栈序列1423和1432?并说明为什么不能得到或者如何得到。 (3)请分析1,2,3,4的24种排列中,哪些序列是可以通过相应的入出栈操作得到的。

    正确答案: (1)出栈序列为:1324
    (2)不能得到1423序列。因为要得到14的出栈序列,则应做
    Push(1),Pop(),Push(2),Push(3),Push(4),Pop()。这样,3在栈顶,2在栈底,所以不能得到23的出栈序列。能得到1432的出栈序列。具体操作为:Push(1),Pop(),Push(2),Push(3),Push(4),Pop(),Pop(),Pop()。
    (3)在1,2,3,4的24种排列中,可通过相应入出栈操作得到的序列是:1234,1243,1324,1342,1432,2134,2143,2314,2341,2431,3214,3241,3421,4321
    不能得到的序列是:
    1423,2413,3124,3142,3412,4123,4132,4213,4231,4312
    解析: 暂无解析

  • 第11题:

    单选题
    今有一空栈S,对下列待进栈的数据元素序列a,b,c,d,e,f依次进行进栈,进栈,出栈,进栈,进栈,出栈的操作,则此操作完成后,栈S的栈顶元素为()
    A

    f

    B

    c

    C

    a

    D

    b


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

  • 第12题:

    判断题
    若让元素1,2,3依次进栈,则出栈次序1,3,2是不可能出现的情况。
    A

    B


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

  • 第13题:

    若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则可能出现的出栈序列为( )

    A.3,2,6,1,4,5

    B.3,4,2,1,6,5

    C.1,2,5,3,4,6

    D.5,6,4,2,3,1


    正确答案:B

  • 第14题:

    n个元素依次全部进入栈后,再陆续出栈并经过一个队列输出。那么,______。

    A.元素的出队次序与进栈次序相同

    B.元素的出队次序与进栈次序相反

    C.元素的进栈次序与进队次序相同

    D.元素的出栈次序与出队次序相反

    A.

    B.

    C.

    D.


    正确答案:B

  • 第15题:

    若push、pop分别表示入栈、出栈操作,初始栈为空且元素3、2、1依次进栈,则经过操作序列push、push、pop、pop、push、pop之后,得到的出栈序列为__(3)__。

    A.321

    B.213

    C.231

    D.123


    正确答案:C
    经过前两个操作push、push之后,栈里有元素3、2且2在栈顶。接着再进行pop、pop之后,依次把2、3出栈了,栈空了。再接着push、pop,元素1进栈又出栈。因此,最终得到的出栈顺序是231。

  • 第16题:

    a、b、c、d、e、f依次进栈、进栈、出栈、进栈、进栈、出栈的操作,则操作完后,栈S的栈顶元素为()。

    A.a

    B.b

    C.c


    答案:C

  • 第17题:

    若进栈序列为1,2,3,4,假定进栈和出栈可以穿插进行,则可能的出栈序列是 ______。

    A.2,4,1,3

    B.3,1,4,2

    C.3,4,1,2

    D.1,2,3,4


    正确答案:D

  • 第18题:

    若进栈次序为a,b,e,且进栈和出栈可以穿插进行,则可能出现的含3个元素的出栈序列个数是 ( )

    A.3

    B.5

    C.6

    D.7


    正确答案:B

  • 第19题:

    若让元素1,2,3依次进栈,则出栈次序1,3,2是不可能出现的情况。


    正确答案:错误

  • 第20题:

    设有5个元素A,B,C,D,E顺序进栈(进栈过程中可以出栈),出栈后依出栈次序进入队列,已知其出队次序为D,C,E,B,A,则该栈容量必定不小于()。

    • A、2
    • B、3
    • C、4
    • D、5

    正确答案:C

  • 第21题:

    设将整数1,2,3,4依次进栈,但只要出栈时栈非空,则可将出栈操作按任何次序夹入其中,请回答下述问题: (1)若入、出栈次序为Push(1),Pop(),Push(2),Push(3),Pop(),Pop(),Push(4),Pop(),则出栈的数字序列为何?(这里Push(i)表示i进栈,Pop()表示出栈) (2)能否得到出栈序列1423和1432?并说明为什么不能得到或者如何得到。 (3)请分析1,2,3,4的24种排列中,哪些序列是可以通过相应的入出栈操作得到的。


    正确答案:(1)出栈序列为:1324
    (2)不能得到1423序列。因为要得到14的出栈序列,则应做
    Push(1),Pop(),Push(2),Push(3),Push(4),Pop()。这样,3在栈顶,2在栈底,所以不能得到23的出栈序列。能得到1432的出栈序列。具体操作为:Push(1),Pop(),Push(2),Push(3),Push(4),Pop(),Pop(),Pop()。
    (3)在1,2,3,4的24种排列中,可通过相应入出栈操作得到的序列是:1234,1243,1324,1342,1432,2134,2143,2314,2341,2431,3214,3241,3421,4321
    不能得到的序列是:
    1423,2413,3124,3142,3412,4123,4132,4213,4231,4312

  • 第22题:

    单选题
    设有一顺序栈,元素1,2,3,4,5依次进栈,如果出栈顺序是2,4,3,5,1则栈的容量至少是:()
    A

    1

    B

    2

    C

    3

    D

    4


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

  • 第23题:

    单选题
    设abcdef以所给的次序进栈,若在进栈操作时,允许出栈操作,则下面得不到的出栈序列为()。
    A

    fedcba

    B

    bcafed

    C

    dcefba

    D

    cabdef


    正确答案: A
    解析: