
在d)示例中,图像显示的是一个接一个的函数推送(pop()*pop()),用于图c所示的状态。有人能跟我解释一下为什么2号5号还在那里吗?那个推动流行音乐的功能是如何工作的?
发布于 2015-01-18 00:36:57
我很确定(不知道是怎么写的)图片所显示的是没有必要从堆栈中“物理地删除”2.5,而只有堆栈头指针("vrh"?)被调整了。每当有新的东西被推到堆栈上时,2.5就会简单地被覆盖。
也许,2.5之所以“星号”,恰恰是为了表明,虽然它在那里,但对于堆栈上的任何操作来说,它已经不再重要了。从技术上讲,10也没有被相应的pop调用删除,而只是在25被push编辑时被覆盖。
当然,这仅仅说明了堆栈结构的特定实现的细节。对于一个实现来说,清除2.5是同样有效的--不管怎么说,这个实现的用户都无法区分这两者的区别。
https://stackoverflow.com/questions/28005825
复制相似问题