如何实现具有有限数量元素的堆栈?

时间:2013-08-19 21:47:28

标签: vb.net stack deque undo-redo capacity

我最近为我的程序创建了一个精心设计的撤销/重做机制。它是一个适用于特定XML文件的编辑器。但是,由于某些更改可能会也可能不会更改XML文件中的任何节点数量,因此我目前将整个XML文档备份为克隆。

到目前为止,我一直在使用两个System.Collections.Generic.Stack(Of XmlNode)对象来存储它们,并且来回跳过的效果非常好。但是现在我想限制一个可以撤消的步骤数量,i。即如果撤消堆栈中的项目数超过某个阈值,我需要丢弃最旧的条目。

我该怎么做?

P.S。:我发现我可能会使用像Deque这样的东西,所以我已经实现了自己的DoubleEndedQueue(Of T)。我可以轻松地模拟有限的堆栈。但它使用System.Collections.Generic.List(Of T),我不知道List.Insert(item, 0)是高性能O(1)还是O(n)。

0 个答案:

没有答案