在d)示例图像显示在函数push(pop()* pop())之后的堆栈,该函数用于图c)中所示的状态。谁能向我解释为什么还有2,5号?以及如何推动pop pop功能?
答案 0 :(得分:1)
我非常肯定(不知道写的是什么)图片说明的是没有必要从堆栈中“物理移除”2.5,但是只调整堆栈头指针(“vrh”?) 。每当有新东西被推入堆栈时,2.5就会被覆盖。
可能2.5,“加星标”的原因恰恰表明,虽然它存在,但它不再适用于堆栈上的任何操作。从技术上讲,10也没有通过相应的pop
调用删除,但只是在25 push
编辑时被覆盖。
当然,这仅说明了堆栈结构的特定实现的细节。对于清除2.5的实现来说同样有效 - 实现的用户无论如何都无法区分它。