[试题]

一个栈(Stack)对象有三种状态:S1——栈空;S2——栈非空也非满;S3——栈满。则各个状态的条件如下:

S1:(t0)创建栈对象时初始化,这是系统做的(t1)在S2状态下执行置空运算setEmpty()(t2)在S3状态下执行置空运算setEmpty()(t3)在S2状态下执行出栈运算Pop()

S2:(t4)在S1状态下执行进栈运算Push()(t5)在S3状态下执行出栈运算Pop()

S3:(t6)在S2状态下执行进栈运算Push()

为简化问题,假设栈Stack的容量为2,栈元素的数据类型为整数。

根据题意,画出栈对象的状态迁移图;

参考答案与解析:

相关试题

设有一顺序栈S,元素s1,s2,s3,s4,s5,s6依次进栈,如果6个元素出栈

[单选题]设有一顺序栈S,元素s1,s2,s3,s4,s5,s6依次进栈,如果6个元素出栈的顺序是s2,s3,s4,s5,s6,s1,则栈的容量至少应该是 ( )A.2B.3C.5D.6

  • 查看答案
  • 设有一个顺序栈S,元素s1,s2,s3,s4,s5,s6依次进栈,如果6个元素

    [单选题]设有一个顺序栈S,元素s1,s2,s3,s4,s5,s6依次进栈,如果6个元素的出栈顺序为s2,s3,s4,s6,s5,s1,则顺序栈的容量至少应为 (35) 。(35) A.2B.3C.4D.5

  • 查看答案
  • 设有一个顺序栈S,元素s1,s2,s3,s4,s5,s6依次进栈,如果6个元素的

    [单选题]设有一个顺序栈S,元素s1,s2,s3,s4,s5,s6依次进栈,如果6个元素的出栈顺序为s2,s3,s4,s6,s5,s1,则顺序栈的容量至少应为______。A.2B.3C.4D.5

  • 查看答案
  • 设栈s和队列q的初始状态为空,元素a、b、c、d、e依次进入栈s,当一个元素从栈

    [单选题]设栈s和队列q的初始状态为空,元素a、b、c、d、e依次进入栈s,当一个元素从栈中出来后立即进入队列q。若从队列的输出端依次得到元素c、d、b、a、e,则元素的出栈顺序是(26),栈s的容量至少为(27)。A.a、b、c、d、eB.-e、d、c、b、aC.c、d、b、a、eD.e、a、b、d、c

  • 查看答案
  • 已知Q是一个非空队列,S是一个空栈。编写算法,仅用队列和栈的ADT函数和少量工作

    [填空题] 已知Q是一个非空队列,S是一个空栈。编写算法,仅用队列和栈的ADT函数和少量工作变量,将队列Q的所有元素逆置。栈的ADT函数有:voidmakeEmpty(SqStacks);置空栈voidpush(SqStacks,ElemTypee);元素e入栈ElemTypepop(SqStacks);出栈,返回栈顶元素intisEmpty(SqStacks);判断栈空队列的ADT函数有:voidenQueue(Queueq,ElemTypee);元素e入队ElemTypedeQueue(Queueq)

  • 查看答案
  • 判定一个顺序栈S(栈空间大小为n)为空的条件是()。

    [单选题]判定一个顺序栈S(栈空间大小为n)为空的条件是()。A . S->top==0B . S->top!=0C . S->top==nD . S->top!=n

  • 查看答案
  • 设栈S和队列Q的初始状态为空。元素a、b、c、d、e、f依次通过栈S,并且一个元

    [单选题]设栈S和队列Q的初始状态为空。元素a、b、c、d、e、f依次通过栈S,并且一个元素出栈后即进入队列Q,若出队的顺序为b、d、c、f、e、a,则栈S的容量至少应该为______。A.3B.4C.5D.6

  • 查看答案
  • 设有栈S和队列Q,其初始状态为空,元素a、a、 a、a、a、a依次入栈,出栈的元

    [单选题]设有栈S和队列Q,其初始状态为空,元素a、a、 a、a、a、a依次入栈,出栈的元素进入队列Q,若6个元素出队列的顺序是a、a、a、a、a、,则栈的容量至少是______。A.6B.4C.3D.2

  • 查看答案
  • 已知栈S初始为空,对于一个符号序列a1a2a3a4a5(入栈次序也是该次序),当

    [单选题]已知栈S初始为空,对于一个符号序列a1a2a3a4a5(入栈次序也是该次序),当用I表示入栈、O表示出栈,则通过栈S得到符号序列a2a4a5a3a1的操作序列为______。A.I O I I O O I O O IB.I I O I O I O I O OC.I O O I I O I O I OD.I I O I I O I O O OA.B.C.D.

  • 查看答案
  • 设用数组A[1,n]作为两个栈S1、S2的共用存储空间,对任一个栈,只有当数组A[1,n]全满时才不作入栈操作,则分配这两个栈空间的最佳方案是()。

    [单选题]设用数组A[1,n]作为两个栈S1、S2的共用存储空间,对任一个栈,只有当数组A[1,n]全满时才不作入栈操作,则分配这两个栈空间的最佳方案是()。A

  • 查看答案
  • 一个栈(Stack)对象有三种状态:S1——栈空;S2——栈非空也非满;S3——