网友您好, 请在下方输入框内输入要搜索的题目:

题目内容 (请给出正确答案)

一个栈(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,栈元素的数据类型为整数。

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


参考答案

更多 “ 一个栈(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个元素的出栈顺序为s2,s3,s4,s6,s5,s1,则顺序栈的容量至少应为 (35) 。(35) A.2B.3C.4D.5

考题 下列不属于栈基本运算的是()。 A入栈B删除栈底元素C判断栈是否为空D建立一个空栈

考题 ( 15 )请将下列栈类 Stack 补充完整class Stack{private:int pList[100]; // int 数组 , 用于存放栈的元素int top; // 栈顶元素 ( 数组下标 )public:Stack():top(0){}void Push(const int item); // 新元素 item 压入栈int Pop(void); // 将栈顶元素弹出栈};void Stack::Push(const int item){if(top == 99) // 如果栈满 , 程序终止exit(1);top++; // 栈顶指针增 1___________;}int Stack::Pop(){if(top0) // 如果栈空 , 程序终止exit(1);return pList[top--];}

考题 以下( )不是栈的基本运算。A)删除栈顶元素B)删除栈底元素C)判断栈是否为空D)将栈置为空栈

考题 POP(PUSH(S,A))的运算步骤是首先将元素A压入栈中,若栈S满,出现上溢现象,否则将元素A压入栈顶,且元素个数加1,然后做POP(S)运算,将栈顶元素弹出,且元素个数减一。( ) 此题为判断题(对,错)。

考题 下面是一个栈类的模板,其中push函数将元素i压入栈顶,pop函数弹出栈顶元素。栈初始为空,top值为0,栈顶元素在stack[top-1]中,在下面横线处填上适当的语句,完成栈类模板的定义。template<class t>class Tstack{enum{size=1000};T stack[size]int top;public:Tsack():top(0){}void push(const Ti){if(top<size)stack[top++]=i;}T pop(){if(top==O)exit(1);//栈空时终止运行retum【 】;}};

考题 假定栈用顺序的方式存储,栈类型stack定义如下:TYPE stack=RECORDA: ARRAY[1..M0OF datatype;t:0..M0;END;下面是栈的一种基本运算的实现:PROCEDURE xxxx(VAR s:stack)BEGINIF s.t=0THEN print('underflow')ELSE s.t:=s.t-1;END;请问这是栈的哪种基本运算?( )。A) 栈的推入B) 栈的弹出C) 读栈顶元素D) 将栈置为空栈A.B.C.D.

考题 若pllsh、pop分别表示入栈、出栈操作,初始栈为空且元素1、2、3依次进栈,则经过操作序列push、push、pop、pop、push、pop之后,得到的出栈序列为 ______。A.321B.213C.231D.123A.B.C.D.

考题 设有一顺序栈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个元素的出栈顺序为s2,s3,s4,s6,s5,s1,则顺序栈的容量至少应为______。A.2B.3C.4D.5

考题 (12)假定栈用顺序的方式存储,栈类型 stack定义如下:TYPE stack=RECORDA:ARRAY[l..m0] OF datatype;t:O..m0;END;下面是栈的一种基本运算的实现:PROCEDURE xxxx(VAR s:satack);BEGINIF s.t=0THEN print(‘underflow’)ELSE s.t:=s.t-1;END;请问这是栈的哪一种基本运算?A) 栈的推入B)栈的弹出C)读栈顶元素D)将栈置为空栈

考题 以下哪一个不是栈的基本运算( )。A)往栈中任意位置插入一个元素B)从栈中删除一个元素C)把栈的栈顶元素读到变量中D)将栈置为空栈

考题 ●设push、pop分别表示入栈、出栈操作,若初始栈为空,对于元素序列a b c,则操作序列push、pop、pop、push、push、pop (36)。(36)A.得到出栈序列为abcB.得到出栈序列为bacC.得到出栈序列为bcaD.是非法的操作序列

考题 若push、pop分别表示入栈、出栈操作,初始栈为空且元素1、2、3依次进栈,则经过操作序列push、push、pop、pop、push、pop之后,得到的出栈序列为 ( ) A.321 B.213 C.231 D.123

考题 以下不是栈的基本运算的是()。A.删除栈顶元素 B.删除栈底元素 C.判断栈是否为空 D.将栈置为空栈

考题 以下哪一个不是栈的基本运算()。A.删除栈顶元素 B.删除栈底元素 C.判断栈是否为空 D.将栈置为空栈

考题 设数组S[n]作为两个栈S1和S2的存储空间,对任何一个栈只有当S[n]全满时才不能进行进栈操作。为这两个栈分配空间的最佳方案是()。A、S1的栈底位置为0,S2的栈底位置为n-1B、S1的栈底位置为0,S2的栈底位置为n/2C、S1的栈底位置为0,S2的栈底位置为nD、S1的栈底位置为0,S2的栈底位置为1

考题 在下面栈的基本运算中,不是加工型运算的是()A、初始化B、进栈C、退栈D、判栈空

考题 以下哪一个不是栈的基本运算()A、删除栈顶元素B、删除栈底的元素C、判断栈是否为空D、将栈置为空栈

考题 设有一个顺序栈S,元素s1,s2,s3,s4,s5,s6依次进栈,如果6个元素的出栈顺序为s2,s3,s6,s5,s1则顺序栈的容量至少应为()。

考题 在作退栈运算时应先判别栈是否()。A、空B、满C、上溢D、下溢

考题 顺序栈的上溢是指()。A、栈满时作退栈运算B、栈满时作进栈运算C、栈空时作退栈运算D、栈空时作进栈运算

考题 若用数组S[0..n-1]作为两个栈S1和S2的共同存储结构,对任何一个栈,只有当S全满时才不能作入栈操作。为这两个栈分配空间的最佳方案是()。A、S1的栈底位置为0,S2的栈底位置为n-1B、S1的栈底位置为0,S2的栈底位置为n/2-1C、S1的栈底位置为1,S2的栈底位置为nD、S1的栈底位置为1,S2的栈底位置为n/2

考题 设将整数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种排列中,哪些序列是可以通过相应的入出栈操作得到的。

考题 单选题以下哪一个不是栈的基本运算()A 删除栈顶元素B 删除栈底的元素C 判断栈是否为空D 将栈置为空栈

考题 单选题设数组S[n]作为两个栈S1和S2的存储空间,对任何一个栈只有当S[n]全满时才不能进行进栈操作。为这两个栈分配空间的最佳方案是()。A S1的栈底位置为0,S2的栈底位置为n-1B S1的栈底位置为0,S2的栈底位置为n/2C S1的栈底位置为0,S2的栈底位置为nD S1的栈底位置为0,S2的栈底位置为1

考题 单选题顺序栈的上溢是指()。A 栈满时作退栈运算B 栈满时作进栈运算C 栈空时作退栈运算D 栈空时作进栈运算