一个栈(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,栈元素的数据类型为整数。
根据题意,画出栈对象的状态迁移图;
第1题:
此题为判断题(对,错)。
第2题:
假定栈用顺序的方式存储,栈类型stack定义如下:
TYPE stack=RECORD
A: ARRAY[1..M0OF datatype;
t:0..M0;
END;
下面是栈的一种基本运算的实现:
PROCEDURE xxxx(VAR s:stack)
BEGIN
IF s.t=0
THEN print('underflow')
ELSE s.t:=s.t-1;
END;
请问这是栈的哪种基本运算?( )。
A) 栈的推入
B) 栈的弹出
C) 读栈顶元素
D) 将栈置为空栈
A.
B.
C.
D.
第3题:
设有一顺序栈S,元素s1,s2,s3,s4,s5,s6依次进栈,如果6个元素出栈的顺序是s2,s3,s4,s5,s6,s1,则栈的容量至少应该是 ( )
A.2
B.3
C.5
D.6
第4题:
(12)假定栈用顺序的方式存储,栈类型 stack定义如下:
TYPE stack=RECORD
A:ARRAY[l..m0] OF datatype;
t:O..m0;
END;
下面是栈的一种基本运算的实现:
PROCEDURE xxxx(VAR s:satack);
BEGIN
IF s.t=0
THEN print(‘underflow’)
ELSE s.t:=s.t-1;
END;
请问这是栈的哪一种基本运算?
A) 栈的推入
B)栈的弹出
C)读栈顶元素
D)将栈置为空栈
第5题:
●设push、pop分别表示入栈、出栈操作,若初始栈为空,对于元素序列a b c,
则操作序列push、pop、pop、push、push、pop (36)。
(36)
A.得到出栈序列为abc
B.得到出栈序列为bac
C.得到出栈序列为bca
D.是非法的操作序列
第6题:
第7题:
设数组S[n]作为两个栈S1和S2的存储空间,对任何一个栈只有当S[n]全满时才不能进行进栈操作。为这两个栈分配空间的最佳方案是()。
第8题:
以下哪一个不是栈的基本运算()
第9题:
在作退栈运算时应先判别栈是否()。
第10题:
若用数组S[0..n-1]作为两个栈S1和S2的共同存储结构,对任何一个栈,只有当S全满时才不能作入栈操作。为这两个栈分配空间的最佳方案是()。
第11题:
删除栈顶元素
删除栈底的元素
判断栈是否为空
将栈置为空栈
第12题:
栈满时作退栈运算
栈满时作进栈运算
栈空时作退栈运算
栈空时作进栈运算
第13题:
下面是一个栈类的模板,其中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 T&i){
if(top<size)
stack[top++]=i;
}
T pop()
{
if(top==O)exit(1);//栈空时终止运行
retum【 】;
}
};
第14题:
若pllsh、pop分别表示入栈、出栈操作,初始栈为空且元素1、2、3依次进栈,则经过操作序列push、push、pop、pop、push、pop之后,得到的出栈序列为 ______。
A.321
B.213
C.231
D.123
A.
B.
C.
D.
第15题:
设有一个顺序栈S,元素s1,s2,s3,s4,s5,s6依次进栈,如果6个元素的出栈顺序为s2,s3,s4,s6,s5,s1,则顺序栈的容量至少应为______。
A.2
B.3
C.4
D.5
第16题:
以下哪一个不是栈的基本运算( )。
A)往栈中任意位置插入一个元素
B)从栈中删除一个元素
C)把栈的栈顶元素读到变量中
D)将栈置为空栈
第17题:
第18题:
第19题:
在下面栈的基本运算中,不是加工型运算的是()
第20题:
设有一个顺序栈S,元素s1,s2,s3,s4,s5,s6依次进栈,如果6个元素的出栈顺序为s2,s3,s6,s5,s1则顺序栈的容量至少应为()。
第21题:
顺序栈的上溢是指()。
第22题:
设将整数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种排列中,哪些序列是可以通过相应的入出栈操作得到的。
第23题:
S1的栈底位置为0,S2的栈底位置为n-1
S1的栈底位置为0,S2的栈底位置为n/2
S1的栈底位置为0,S2的栈底位置为n
S1的栈底位置为0,S2的栈底位置为1