在一个使用数组实现的栈中,假设栈底位于数组的高索引位置,栈顶指针T初始指向栈底。经过PUSH a, POP, PUSH b, PUSH c, POP操作后,栈顶指针T的值是?
答案解析
核心考点说明:本题考察栈操作对栈顶指针的最终影响。
解题思路分析:初始栈为空,栈顶指针T指向栈底n。执行PUSH a后,T减少1至n-1;执行POP后,T增加1至n;执行PUSH b后,T减少1至n-1;执行PUSH c后,T减少1至n-2;执行POP后,T增加1至n-1。因此,最终T的值为n-1。
每个选项的详细分析:
A. n+1:错误,不符合操作序列的结果。
B. n+2:错误,不符合操作序列的结果。
C. n:错误,不符合操作序列的结果。
D. n-1:正确,符合操作序列的结果。
易错点提醒:注意每次PUSH和POP操作对栈顶指针的具体影响。
正确答案:D