内容正文:
3.3栈 (分层作业)
【夯实基础】
1. 栈是一种什么类型的线性表?( )
A. 允许在两端插入和删除
B. 只允许在一端插入,另一端删除
C. 只允许在表的一端进行插入或删除
D. 无特定插入删除位置限制
2. 栈的基本操作不包括以下哪项?( )
A. 入栈
B. 出栈
C. 建栈
D. 查找栈中指定元素
3. 栈的特性是?( )
A. 先进先出
B. 后进先出
C. 随机存取
D. 无特定顺序
4. 栈顶元素是指?( )
A. 最后加入的元素
B. 最先加入的元素
C. 中间的元素
D. 不存在的元素
5. 在栈中,元素的添加操作称为?( )
A. 出栈
B. 入栈
C. 插入
D. 删除
6. 在栈中,元素的移除操作称为?( )
A. 入栈
B. 出栈
C. 压栈
D. 顶栈
7. 如果一个栈的初始状态为空,现有元素A、B、C依次入栈,之后进行一次出栈操作,此时栈顶元素是?( )
A. A
B. B
C. C
D. 空
8. 用数组实现栈时,如何表示栈为空?( )
A. top = -1
B. top = 0
C. top = size of array
D. top ≠ -1
【巩固提升】
9. 如果一个栈的初始状态为空,现有元素1, 2, 3依次入栈,之后连续进行两次出栈操作,此时栈顶元素是?( )
A. 1
B. 2
C. 3
D. 空
10. 若栈的初始状态为空,现有元素A、B、C、D依次入栈,然后进行两次出栈操作,再入栈元素E,此时栈顶元素是?( )
A. C
B. D
C. E
D. B
11. 栈和队列在数据的存取特性上最大的区别是什么?( )
A. 栈先进先出,队列后进先出
B. 队列先进先出,栈后进先出
C. 都是先进先出
D. 都是后进先出
12.栈S初始为空,将1,4,1,1,4,5,2,5,3,2,3依次入栈,当某个元素入栈后,如果此刻栈顶元素和栈中其他元素相同,将这两个元素间的所有数据出栈(包括这两个元素),再继续后面数据的入栈操作,最后栈中栈顶到栈底的元素依次为( )
A.1,4 B.1,4,5,3 C.4,1 D.3,5,2
13 . 已知一个序列的出栈顺序为ACEGI, 则该序列的入栈顺序可能是( )
A.CEAGI B.AGEIC C.EICAG D.IGCAE
【拓展应用】
14.以下哪个场景体现了栈的后进先出特性?( )
A. 银行的排队叫号系统
B. 操作系统中的任务调度
C. 网页浏览器的前进后退功能
D. 计算器中的括号匹配算法
15.在计算机科学中,用来实现函数调用堆栈的数据结构通常是?( )
A. 栈
B. 队列
C. 链表
D. 树
参考答案:
【夯实基础】
1. C 解析:栈是一种特殊的线性表,只允许在表的一端进行插入或删除操作,这一端被称为栈顶,另一端固定不变,故选C。
2. D 解析:栈的基本操作包括建栈、入栈(压栈)、出栈,但不包括直接查找栈中指定元素,因为栈的特点是后进先出,查找通常伴随出栈操作,故选D。
3. B 解析:栈的特性是后进先出(Last In First Out, LIFO),即最后加入的元素最先被移除,故选B。
4. A 解析:栈顶元素是指最近加入到栈中的元素,即最后加入的元素,故选A。
5. B 解析:元素的添加操作在栈中称为入栈或压栈,故选B。
6. B 解析:元素的移除操作在栈中称为出栈,故选B。
7. B 解析:A、B、C依次入栈后,C位于栈顶。出栈操作移除栈顶元素C,因此接下来的栈顶元素是B,故选B。
8. A 解析:使用数组实现栈时,通常设置一个指针(如top)来指向栈顶元素的位置。当栈为空时,这个指针应该指向数组的一个无效位置,-1常用来表示这个初始状态,故选A。
【巩固提升】
9. A 解析:元素1, 2, 3入栈后,栈顶为3。连续两次出栈操作后,先移除3,再移除2,栈顶元素变为1。
10. C 解析:元素A、B、C、D入栈后,栈顶为D。进行两次出栈操作,移除D和C,栈顶变为B。接着E入栈,栈顶变为E。
11. B 解析:栈的特点是后进先出(LIFO),而队列的特点是先进先出(FIFO)。这是两者最本质的区别。
12. C 解析:本题考查数据结构栈操作相关内容。栈的特点是先进后出。1、4、1依次入栈,栈顶到栈底的元素依次