社区
数据结构与算法
帖子详情
【100分】redo undo
TheRealBo
2011-08-25 11:18:15
想写个redo undo,各位高手麻烦给点思路
比如,Insert,insert,remove,undo,undo,modify,insert,undo,undo,redo,redo
最后操作为insert,modify,insert
...全文
217
13
打赏
收藏
【100分】redo undo
想写个redo undo,各位高手麻烦给点思路 比如,Insert,insert,remove,undo,undo,modify,insert,undo,undo,redo,redo 最后操作为insert,modify,insert
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
TheRealBo
2011-09-12
打赏
举报
回复
再顶一次,要结贴了
cc之家
2011-08-30
打赏
举报
回复
[Quote=引用 7 楼 kingwolfofsky 的回复:]
Command模式?
[/Quote]完全正确!
struct mark{
infotype;
infocontext;
};
//用vector 也可以
vector<mark*> m_vectorMark;
TheRealBo
2011-08-29
打赏
举报
回复
[Quote=引用 10 楼 jingtianwen 的回复:]
如果只记录操作,实现redo容易,但实现undo是要把要撤消的命令效果去掉,还得恢复之前的状态,不好整吧。
如果记录操作目标的状态,是不是有点太小题大作了?
[/Quote]
就是要实现redo undo这两个操作,哪里小题大做?不是记录操作目标的状态,可能你理解错了
竞天问
2011-08-28
打赏
举报
回复
如果只记录操作,实现redo容易,但实现undo是要把要撤消的命令效果去掉,还得恢复之前的状态,不好整吧。
如果记录操作目标的状态,是不是有点太小题大作了?
TheRealBo
2011-08-27
打赏
举报
回复
[Quote=引用 4 楼 huangliulove 的回复:]
定义两个栈,一个保存已经操作的操作,一个保存撤销的操作
每操作一次,第一个栈入栈,第二个栈清空;
每撤销一次,第一个栈出栈,第二个入栈;
每重做一次,第二个栈出栈,第一个栈入栈;
大致思路就这样咯
[/Quote]
没看很明,能再说清楚一些吗?
TheRealBo
2011-08-27
打赏
举报
回复
[Quote=引用 8 楼 zeroasan_ 的回复:]
说明:操作是指undo redo之外的insert,modify等操作。
用一个栈stack来保存操作记录,下标C标志当前操作的位置。(默认C即为stack的最后一个元素)stack中C之后的元素是你undo的操作。
步骤1. 每次Insert和modify,操作入栈,C++。
步骤2. undo之后,C相应向回移动,每次undo做C--
步骤3. 分支:
3.1. ……
[/Quote]
我去研究一下
zeroasan_
2011-08-27
打赏
举报
回复
说明:操作是指undo redo之外的insert,modify等操作。
用一个栈stack来保存操作记录,下标
C
标志当前操作的位置。(默认C即为stack的最后一个元素)stack中
C
之后的元素是你undo的操作。
步骤1. 每次Insert和modify,操作入栈,C++。
步骤2. undo之后,C相应向回移动,每次undo做C--
步骤3. 分支:
3.1. 若下一步为redo, 则C++
3.2. 若下一步为undo, 则C--
3.3 若下一步为操作,则先清空stack中C之后的元素,再添加操作入栈,C再次为stack的最后一个元素。
eclipse的文本编辑器就这样,undo之后的,再次有输入操作,那么之前undo的那些就不能redo了,操作信息抛弃了。
KingWolfOfSky
2011-08-27
打赏
举报
回复
Command模式?
lament_gates
2011-08-27
打赏
举报
回复
堆栈呀~~~把所有的操作和撤销操作都保存下来.
AndyZhang
2011-08-25
打赏
举报
回复
将你的操作全部记录下来,然后移动指针。每个操作就是一个对象,一个单元。
具体可以加上操作类型,时间,顺序等属性。
奋斗吧
2011-08-25
打赏
举报
回复
定义两个栈,一个保存已经操作的操作,一个保存撤销的操作
每操作一次,第一个栈入栈,第二个栈清空;
每撤销一次,第一个栈出栈,第二个入栈;
每重做一次,第二个栈出栈,第一个栈入栈;
大致思路就这样咯
BaronZ
2011-08-25
打赏
举报
回复
用一个指针数组,操作一次保存成为一个元素。如果undo,则数组下标-1,redo则数组下标+1
一叶之舟
2011-08-25
打赏
举报
回复
帮你顶一下
red
o
undo
framework source code
在IT行业中,"
red
o
undo
...理解并实现一个"
red
o
undo
"框架,不仅有助于提高用户体验,也是提升软件质量的关键步骤。通过
分
析和学习`
Undo
Framework`的源码,开发者可以更好地理解这一机制,并将其应用于实际项目中。
ORACLE
red
o
undo
.docx
Oracle
red
o
undo
是 Oracle 数据库中的一种机制,用于确保事务的可恢复性和撤销性。下面是对
red
o
undo
机制的详细解释。
red
o 机制
red
o 机制是 Oracle 数据库中的一种机制,用于记录事务的所有操作,以便在...
C#做的简单的
Undo
、
Red
o功能的实现
这篇实验主要探讨了如何在Windows Forms(WinForm)应用中实现一个简单的
Undo
和
Red
o系统,同时支持设置最大撤销次数。 首先,我们需要理解撤销和重做是如何工作的。撤销操作通常是通过记录用户进行的每一项改变来...
实现
Red
o
Undo
的一个简单实例,包含源码
3. **
Undo
和
Red
o管理器(
Undo
/
Red
o Manager)**:这是一个负责处理撤销和重做逻辑的类,它管理操作栈,处理用户的
Undo
和
Red
o请求。 4. **事件处理(Event Handling)**:在Delphi中,事件通常与控件关联,当用户...
undo
red
o 原型设计
cpp文件
undo
red
o 原型设计 部
分
代码 class Command { public: virtual BOOL
UnDo
() = 0; virtual BOOL
ReD
o() = 0; };
数据结构与算法
33,027
社区成员
35,335
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章