data-structures - 用于实现UNDO和REDO选项的数据结构

标签 data-structures design-patterns undo-redo

我想实现UNDO和REDO选项(正如我们在MS Word等中看到的那样)。你能给我推荐一个它的数据结构吗?我该如何实现它?

最佳答案

它不是一种数据结构,而是一种设计模式。您正在寻找Command Pattern .

标准是将 Command 对象保留在堆栈中以支持多级撤消。为了支持重做,第二个堆栈保留您已撤消的所有命令。因此,当您弹出撤消堆栈以撤消命令时,您会将弹出的同一命令推送到重做堆栈中。当您重做命令时,您会执行相反的操作。您弹出重做堆栈并将弹出的命令推回到撤消堆栈中。

关于data-structures - 用于实现UNDO和REDO选项的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/701131/

相关文章:

c++ - 存储可通过键或序号 c++ 访问的数据的简单有效方法

design-patterns - 聚合必须知道并仅将其行为建立在其自身状态之上?聚合可以在其行为(方法)中使用其他聚合的状态吗?

java - 如何在文本编辑器中设计撤销和重做?

javascript - 是否有可能在javascript中获取撤消文本

c++ - "redo/undo"函数的问题(mfc、c++)

c - 在这种情况下我应该使用什么样的数据结构?

data-structures - 为什么jdk中的 "offset+length<0"来确定参数是否非法?

c++ - 是否可以实现既是最大堆又是最小堆的二叉堆?

php - 如何在网站上显示不同货币的价格?

c# - 使用 LINQ 将多个列表合并为一个列表