堆栈推送(pop()*pop()) 解释

Stack push(pop()*pop()) explanation

在 d) 中,示例图像显示了函数 push(pop()*pop()) 之后的堆栈,该函数用于图 c) 中所示的状态。有人可以向我解释为什么数字 2,5 仍然存在吗?以及 push pop pop 功能是如何工作的?

我很确定(不知道写的是什么)图片说明的是不需要 "physically remove" 堆栈中的 2.5,但只有堆栈头指针("vrh"?) 进行调整。每当将新内容推入堆栈时,2.5 将被简单地覆盖。

可能,2.5 是 "starred" 的原因恰恰表明,当它存在时,对于堆栈上的任何操作而言不再重要。从技术上讲,10 也没有被其相应的 pop 调用删除,而是在 pushed pushed 时被简单地覆盖。

当然,这只是说明了堆栈结构的特定实现的细节。清除 2.5 的实施同样有效——实施的用户无论如何都无法分辨差异。