下图中所使用的数据结构是( )。 
别被图景骗了,这题考的是线性结构里‘同端进出’这个核心特征。拿到题先找操作:push 和 pop 都在同一头,这就是栈(LIFO);若是一头进一头出才是队列(FIFO)。
最容易掉进‘队列’的坑,因为队列也是线性表,且名字里带‘队’,学生容易把‘同端进出’记成‘两端进出’。其实队列是先进先出(FIFO),一头进一头出;而栈是后进先出(LIFO),两头操作都在栈顶。另一个常见错误是混淆‘栈’和‘堆’,堆是内存管理概念,和这里的线性结构无关。
这道题考查的是线性结构中栈(Stack)与队列(Queue)的区别。栈是一种后进先出(LIFO, Last In First Out)的数据结构,所有操作(push 进栈、pop 出栈)都在同一端——栈顶进行。队列则是先进先出(FIFO, First In First First Out),一头进、一头出。
命题人喜欢用极简的示意图来考概念辨析。这张图没有画具体的节点或数组下标,只画了 push 和 pop 两个箭头指向同一端。这种‘同端进出’的视觉特征,就是命题人挖的‘坑’:如果你只记‘栈是 LIFO’,却忽略了它的操作位置特征,很容易误选 C(队列)。实际上,队列的操作特征是‘两端进出’,和图完全不符。