今有一空栈 $S$,对下列待进栈的数据元素序列 $a,b,c,d,e,f$ 依次进行:进栈,进栈,出栈,进栈,进栈,出栈的操作,则此操作完成后,栈底元素为( )。
别急着背定义,拿到题直接按顺序模拟:a、b进,b出,c、d进,d出,最后看谁还在最底下。
最容易把‘栈底’想成‘栈顶’,或者以为出栈后栈就空了、忘了后面还有入栈操作。其实栈底就是最早进且一直没出栈的那个元素,不管中间怎么折腾,只要它没被弹出,它就永远在底部。
考的是栈的基本操作和‘栈底’这个概念。别被术语绕晕,核心就两点:后进先出(LIFO)和栈底是固定不动的那一端。
栈就像个只能在一端塞东西、只能从那端拿东西的盒子。新塞进去的在最上面(栈顶),拿出来的也是从最上面拿。栈底就是盒子最底下那层,永远在那儿,除非整个盒子被清空,否则它不会动。