Syn*_*ter 45 design-patterns undo-redo data-structures
我想实现UNDO和REDO选项(正如我们在MS word等中看到的那样).你能为我建议一个数据结构,我该如何实现呢?
Jas*_*yon 102
它不是数据结构,而是设计模式.你正在寻找命令模式.
标准是将Command对象保留在堆栈中以支持多级撤消.为了支持重做,第二个堆栈会保留你已经完成的所有命令.因此,当您弹出撤消堆栈以撤消命令时,您可以将弹出的相同命令推送到重做堆栈.重做命令时,您可以反向执行相同的操作.弹出重做堆栈并将弹出的命令推回到撤消堆栈中.