我一直在寻找这个无济于事,也许这不是一件“事”。 是否有一个特定的名称给予大小有限的堆栈,如果值被删除无关紧要?
这在页面历史情况中最为自然。基于每个标签的浏览器历史记录可以被视为堆栈。当我去一个新的网站,我推动了一些东西。当我按下后退按钮时,我会弹出一些东西并进入一个单独的堆栈,以防我按下前进按钮。
但是,您可以想象限制此堆栈的大小。也许它只记得我在该标签中访问过的最近20个网站。当堆栈达到20时,将推送新项目,并弹出最旧的项目。
这种行为,是一种推动导致另一端相应的弹出,在一定的大小阈值之后,值得注意并且除了作为好奇心以外的任何方式有用吗?如果是,那么这种结构被分类为什么,你可以为它提供额外的用例吗?
答案 0 :(得分:1)
如果使用FixedSizeCircularBuffer实现堆栈,则可以执行此操作。基本上,只要您的缓冲区已满,就会删除任何新内容。
请查看Circular Buffer,您可以在其中执行所要求的操作,Circular buffer可用于实现堆栈和队列。