首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >堆栈推送(pop()*pop())解释

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

Stack Overflow用户
提问于 2015-01-18 00:19:16
回答 1查看 1.3K关注 0票数 0

在d)示例中,图像显示的是一个接一个的函数推送(pop()*pop()),用于图c所示的状态。有人能跟我解释一下为什么2号5号还在那里吗?那个推动流行音乐的功能是如何工作的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-18 00:36:57

我很确定(不知道是怎么写的)图片所显示的是没有必要从堆栈中“物理地删除”2.5,而只有堆栈头指针("vrh"?)被调整了。每当有新的东西被推到堆栈上时,2.5就会简单地被覆盖。

也许,2.5之所以“星号”,恰恰是为了表明,虽然它在那里,但对于堆栈上的任何操作来说,它已经不再重要了。从技术上讲,10也没有被相应的pop调用删除,而只是在25被push编辑时被覆盖。

当然,这仅仅说明了堆栈结构的特定实现的细节。对于一个实现来说,清除2.5是同样有效的--不管怎么说,这个实现的用户都无法区分这两者的区别。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28005825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档