3.1 栈的基本概念、栈的顺序存储实现·选择题讲评
约 40 分钟
3.1 选择题讲评:出栈序列、容量和 top 边界
栈题先分三类:抽象顺序、数组边界、共享空间。抽象题只模拟入栈与弹出,不受数组下标约定影响;实现题必须先写清 top 指向栈顶还是下一空位。
单选:输入 1,2,3,4,哪个不可能是出栈序列?A 1,2,3,4;B 2,1,4,3;C 4,3,2,1;D 3,1,2,4。答案 D。要先出 3,栈内从底到顶为 1、2、3;弹出 3 后 2 挡住 1。
多选:顺序栈 top=-1 且指向栈顶,容量 。正确的是 A 空条件 top==-1;B 满条件 top==m;C 元素数 top+1;D 读顶 data[top]。答案 A、C、D;满时最高下标是 。
共享栈计算:容量 10,左栈 4 个、右栈 5 个,此时仍可再入 1 个,不论从哪侧;两栈总数为 10 后才满。它不能突破总容量,只是消除固定分区造成的浪费。
错解反馈:凭肉眼判断排列容易漏掉阻挡关系;把某一 top 约定的公式搬到另一约定会整体差一;认为链栈一定比顺序栈快,忽略两者基本操作都为 且数组缓存更友好。
迁移题(多选):输入 1 至 5,先完成全部入栈再开始弹出,可能输出哪些?A 5,4,3,2,1 B 1,2,3,4,5 C 5,3,4,2,1。答案仅 A,因为“全部入栈后”消除了中途弹出的自由。验收要求写出题设允许的操作时机。
小纸条
单选:输入1,2,3,4,哪个不可能输出?A 1234 B 2143 C 4321 D 3124
登录 后可看答案
Practice
本课练习
先独立作答再提交;编程题会在隔离沙箱中真实编译、运行并对拍。
本课练习正在补齐,暂不应标记为完成。