NOIP 普及组初赛 · NOIP 2017 普及组初赛试题 第 13 题

选择题 · 答案 B · 考点:指针与引用

← 整套速查表 NOIP 普及组初赛 全部真题

题目

向一个栈顶指针为 $hs$ 的链式栈中插入一个指针 $s$ 指向的结点时,应执行( )。

答案:B

考点

指针与引用

解题思维

链式栈本质就是链表头部插入,先让新节点 s 指向原栈顶 hs,再把栈顶指针 hs 指向 s,两步顺序绝对不能反。

常见错误

先改 hs 再连 s 就丢失了原栈顶;A 选项把原栈顶的 next 改为 s 会形成环且没更新 hs;C 是插在第二个位置;D 把 hs 后移了。核心就是两步顺序:s->next=hs; hs=s。

详细解析(节选)

考点与概念

这道题考查链式栈的 push 操作。

链式栈是用链表实现的栈。栈顶指针 hs 指向链表的头节点。每次 push 都在链表头部插入新节点,pop 从头部删除。因此,向链式栈插入新结点,本质上就是在链表头部插入一个结点。链表头插的核心是:先让新结点的 next 指向原头结点,再更新头指针指向新结点,顺序不能反。

命题视角

命题人喜欢考“两步顺序”这个细节:

同考点真题

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断