在初始化空顺序栈时一般不限定栈的最大容量,因为,栈在使用过程中所需最大空间的大小很难估计。
第1题:
一个栈(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,栈元素的数据类型为整数。
根据题意,画出栈对象的状态迁移图;
第2题:
为了减少栈溢出的可能性,可让两个栈共享一片连续内存空间,两个栈的栈底分别设在这片空间的两端,这样,只有______时才可能产生上溢。
A.两个栈的栈顶在栈空间的某一位置相遇
B.其中一个栈的栈顶到达栈空间的中心点
C.两个栈的栈顶同时到达栈空间的中心点
D.两个栈均不为空,且一个栈的栈顶到达另一个栈的栈底
第3题:
在下面栈的基本运算中,不是加工型运算的是()
第4题:
在作进栈运算时,应先判别栈是否(),在作退栈运算时应先判别栈是否()。当栈中元素为n个,作进栈运算时发生上溢,则说明该栈的最大容量为()。为了增加内存空间的利用率和减少溢出的可能性,由两个栈共享一片连续的内存空间时,应将两栈的()分别设在这片内存空间的两端,这样,当()时,才产生上溢。
第5题:
在一个顺序栈中,若栈顶指针等于(),则为空栈;若栈顶指针等于(),则为满栈。
第6题:
36、对于一个栈做进栈运算时,应先判断栈是否为(),做出栈运算时,应先判断别栈是否(),当栈中元素为m时,做栈运算时发生上溢,则说明栈的可用最大容量为()。为了增加内存空间的利用率和减少发生上溢的可能性,由两个栈共享一片连续的内存空间时,应将两栈的()分别设在这片内存空间的两端,这样只有当()时才发生上溢。
第7题:
假定利用数组a[m]顺序存储一个栈,用top表示栈顶指针,用top= =-1表示空,该数组所能存储的栈的最大长度为m,当()时,再做进栈运算会发生“上溢”。
第8题:
第9题:
n-1
n
n+1
n/2
第10题:
第11题:
栈满时作退栈运算
栈满时作进栈运算
栈空时作退栈运算
栈空时作进栈运算
第12题:
初始化
进栈
退栈
判栈空
第13题:
为了增加内存空间的利用率和减小溢出的可能性,由两个栈共享一片连续的内存空间时,应将两个栈的栈底分划设在这片内存空间的两端。如此只有当( )时,才产生上溢。
A.两个栈的栈顶同时到达栈空间的中心点
B.两个栈的栈顶在栈空间的某一位置相遇
C.其中一个栈的栈顶到达栈空间的中心点
D.两个栈不空,且一个栈的栈顶到达另一个栈的栈底
第14题:
第15题:
已知一个顺序栈*s,栈顶指针是top,它的容量为MAXSIZE,则判断栈空的条件为(),栈满的条件是()
第16题:
若栈顶指针指向栈顶元素,当栈中元素为n个,作进栈运算时发生上溢,则说明该栈的最大容量为()。
第17题:
顺序栈的上溢是指()。
第18题:
循环队列的最大存储空间为MaxSize,若队头指针front,队尾指针rear,采用少用一个存储空间以有效地判断栈空或栈满,队空的判定条件为()
第19题:
第20题:
N - 1
N
N+1
N十2
第21题:
top == -1
top == 0
top>l
top == 1
第22题:
第23题:
利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,这种形式的栈也称为顺序栈。
top=0时为空栈,元素进栈时指针top不断地减1。
当top等于数组的最大下标值时则栈满。
栈不能对输入序列部分或全局起求逆作用
第24题:
S->top==0
S->top!=0
S->top==n
S->top!=n