一个栈的初始状态为空,现有以下操作序列:push(1), push(2), pop(), push(3), push(4), pop(), pop(), push(5)。请问经过这些操作后,栈中的元素从栈底到栈顶依次是?
答案解析
核心考点说明:本题考察栈的基本操作:push (入栈)和pop (出栈)以及栈的先进后出(LIFO)特性。难点在于模拟操作序列,跟踪栈的状态变化。解题思路分析:根据栈的操作特性,执行每一步push和pop操作,注意栈顶始终是最后入栈的元素。
选项分析:
初始状态: 栈为空。
push(1): 栈:|1|
push(2): 栈:|1|2|
pop(): 栈:|1|(弹出2)
push(3): 栈:|1|3|
push(4): 栈:|1|3|4|
pop(): 栈:|1|3|(弹出4)
pop(): 栈:|1|(弹出3)
push(5): 栈:|1|5|
所以最终栈的元素为:从栈底到栈顶依次是1, 5.
A. 1, 3: 错误,栈中实际元素是1和5
B. 1, 5: 正确,栈底是1,栈顶是5
C. 5, 1: 错误,栈顶是5,栈底是1,不是从栈底到栈顶。
D. 3, 5: 错误,栈中不包含元素3,且栈底元素是1。
正确答案的关键依据:模拟栈的操作步骤,确定栈底和栈顶元素。
易错点提醒:容易混淆栈的先进先出(FIFO)特性和先进后出(LIFO)特性,或者在弹出操作后忘记更新栈的元素。
正确答案:B