栈和队列习题数据结构.docx
- 188****3660个人认证 |
- 2021-04-20 发布|
- 46.72 KB|
- 8页
习题三栈和队列
一单项选择题
1. 在作进栈运算时,应先判别栈是否 (① ),在作退栈运算时应先判别栈是否 (② )。当
栈中元素为n 个,作进栈运算时发生上溢 ,则说明该栈的最大容量为(③ )。
①, ②: A. 空 B.满C. 上溢 D. 下溢
③: A. n-1 B. n C. n+1 D. n/2
2.若已知一个栈的进栈序列是 1,2,3,? , n,其输出序列为p1,p2,p3,...,pn,若
p1= 3,则p2为( )。
A 可能是 2 B 一定是 2 C 可能是 1 D 一定是 1
3. 有六个元素 6,5,4,3,2,1 的顺序进栈,问下列哪一个不是合法的出栈序列( )
A. 5 4 3 6 1 2 B. 4 5 3 1 2 6 C. 3 4 6 5 2 1 D. 2 3 4 1 5 6
4.设有一顺序栈S,元素 s1,s2,s3,s4,s5,s6 依次进栈, 如果 6 个元素出栈的顺序是 s2,s3,s4, s6 , s5,s1,
则栈的容量至少应该是 ( )
B. 3 C. 5
5. 若栈采用顺序存储方式存储,现两栈共享空间V[1..m], top[i] 代表第 i 个栈( i =1,2)栈顶,
栈1 的底在 v[1],栈2 的底在 V[m] ,则栈满的条件是( )。
A. |top[2]-top[1]|=0 B. top[1]+1=top[2]
C. top[1]+top[2]=m D. top[1]=top[2]
6.执行完下列语句段后, i值为:( )
int f(int x)
{ return ((x>0) x* f(x-1):2);}
int i ;
i =f(f(1));
A.2 B. 4 C. 8 D. 无限递归
7. 表达式 3* 2^(4+2*2-6*3)-5 求值过程中当扫描到 6时,对象栈和算符栈为( ),其中 ^
为乘幂。