一种数据结构的定义方法、数据结构的创建方法技术

技术编号:36034516 阅读:19 留言:0更新日期:2022-12-21 10:37
本发明专利技术涉及数据处理技术领域,具体涉及一种数据结构的定义方法、数据结构的创建方法及数据结构的使用方法。其中数据结构的定义方法包括:定义与当前编辑模块类型匹配的数据结构体;读取当前数据结构体,根据数据结构体创建与数据结构体匹配的操作参数集,根据操作参数集和所述数据结构体形成一命令参数值;所述命令参数值结合一作用对象形成一命令参数;根据所述命令参数结合一命令名称、特征数据标记形成一命令对象;对所述命令对象做数组容器包裹以形成一命令组;根据所述命令组创建与所述命令组匹配的至少一个数据链表;对至少一个所述数据链表做字典包裹处理以形成至少一个操作字典,根据至少一个所述操作字典形成数据结构定义。定义。定义。

【技术实现步骤摘要】
一种数据结构的定义方法、数据结构的创建方法


[0001]本专利技术涉及数据处理
,具体涉及一种数据结构的定义方法、数据结构的创建方法及数据结构的使用方法。
[0002]技术问题
[0003]撤销与重做是绝大部分带有编辑功能的软件中的常用功能,用于提供给用户在操作失误或想回到之前的操作步骤时的回退功能,以及回退后又想前进到后续的已经撤销了的操作步骤时的前进功能。但是,目前市面上所有的编辑器中的撤销重做的方法中,都是全局的撤销重做,例如在统一编辑应用场合过程中,分别对模块A和模块B做交互操作,第一次操作模块A,第二次操作模块B,第三次操作模块A、第四次操作模块B。在执行操作时,其撤销的第四次对操作模块B的操作、第三次对操作模块A的操作、第二次对操作模块B的操作、第一次对操作模块A的操作,原因在于现有的操作记录大多采用堆栈方式存储,执行撤销操作时,按照堆栈存储的先进后出原则,堆栈中分别存储有模块A操作的记录和模块B操作的记录,按顺序执行就将模块A的操作和模块B的操作均被撤销,且在大量的撤销重做之后,会出现内存占用过多导致电脑异常卡顿的问题。因为撤销、重做的记录仍以堆栈的方式进行保存内存占用过多。

技术实现思路

[0004]针对现有技术的不足,本专利技术提供一种数据结构的定义方法、数据结构的创建方法及数据结构的使用方法。
[0005]一方面,本专利技术提供一种数据结构的定义方法,其中,包括:定义与当前编辑模块类型匹配的数据结构体;
[0006]读取当前数据结构体,根据所述数据结构体创建与所述数据结构体匹配的操作参数集,根据所述操作参数集和所述数据结构体形成一命令参数值;
[0007]根据所述命令参数值结合一作用对象形成一命令参数;
[0008]根据所述命令参数结合一命令名称、特征数据标记形成一命令对象;
[0009]对所述命令对象做数组容器包裹以形成一命令组;
[0010]根据所述命令组创建与所述命令组匹配的至少一个数据链表;
[0011]对至少一个所述数据链表做字典包裹处理以形成至少一个操作字典,根据至少一个所述操作字典形成数据结构定义。
[0012]优选地,上述的一种数据结构的定义方法,其中,包括:对至少一个所述数据链表做字典包裹处理以形成至少一个操作字典具体包括:
[0013]所述操作字典做键值对处理,其中所述操作字典的键定义为模块名称,值定义为数据链表,形成每个模块都对应有一个形成每个模块都对应有一个撤销链表和重做链表。
[0014]优选地,上述的一种数据结构的定义方法,其中,包括:所述数据链表可为撤销链表、重做链表中的任意一个。
[0015]另一方面,本专利技术再提供一种数据结构的创建方法,其中,包括:上述的一种数据
结构的定义方法形成的数据结构定义,具体包括:
[0016]于所述数据结构定义完成的状态下,定义与所述数据结构匹配的记录数据方法;
[0017]读取所述记录数据方法,应用所述记录数据方法记录与操作行为匹配的操作数据;
[0018]读取命令名称,根据所述命令名称定义与所述命令名称匹配的动作,以及所述动作的执行方式。
[0019]优选地,上述的数据结构的创建方法,其中,定义与所述数据结构匹配的记录数据方法具体包括:
[0020]创建命令对象,并对命令对象进行赋值,包括命令名称、作用对象、命令参数、命令参数值、操作前的数据、操作后的数据;
[0021]传入模块名称和命令对象,检查所述操作字典是否有对应模块名称的键,于操作字典中没有对应模块名称的状态下,则向操作字典中添加一个键值对,键为模块名称,值为默认的所述数据链表;
[0022]读取场景中是否有未保存的内容,如果有,则设置命令对象中的脏数据标记为“True”,否则设置为“False”;
[0023]创建全局的字典,判断全局的字典是否存在对应模块名称的值,不存在则创建并添加,判断是否存在命令组,不存在则创建命令组,将其插入到对应模块名称的撤销链表中,定义可允许记录的最大操作量。
[0024]优选地,上述的数据结构的创建方法,其中,所述最大操作量为最大操作数量,还包括:
[0025]读取当前数据链表的长度,于所述数据链表的长度超过最大操作数量的状态下删除所述数据链表的头结点;
[0026]将命令对象插入到创建的命令组中,将所述数据链表插入所述数据链表的尾结点。
[0027]优选地,上述的数据结构的创建方法,其中,所述最大操作量为最大操作存储量,还包括:
[0028]读取当前数据链表的存储量,于所述数据链表的存储量超过最大操作存储量的状态下删除所述数据链表的头结点;
[0029]将命令对象插入到创建的命令组中,将所述数据链表插入所述数据链表的尾结点。
[0030]最后,本申请再提供一种数据结构的使用方法,其中,包含应用上述所述的创建方法创建的所述数据结构,还包括:
[0031]于获取的预定操作命令的状态下,根据所述操作命令读取与所述操作命令匹配的命令名称以及模块参数,
[0032]根据所述模块参数读取所述模块参数匹配的操作字典;
[0033]根据所述命令名称读取与所述命令名称匹配的动作,以及所述动作的执行方式;
[0034]对所述操作字典,根据所述执行方式执行所述动作。
[0035]与现有技术相比,本专利技术的有益效果至少包括:
[0036]数据结构的定义方法中分别定义有撤销链表和重做链表,并分别对撤销链表和重
做链表用字典包裹起来,形成撤销字典和重做字典。将字典的键定义为模块名称,值定义为撤销链表或重做链表,形成每个模块都对应有一个撤销链表和重做链表,从而实现利用同一套撤销重做机制在多个模块间实现各自独立的撤销重做。例如做撤销操作时,读取当前操作对应模块的撤销链表,根据该撤销链表对所模块做相应的撤销处理,该撤销链表中仅记录当前模块的相应记录,故而即使在操作过程中相互交叉也不会涉及对交叉模块的操作,另外现有技术大多采用堆栈来记录数据,在执行了大量的撤销/重做操作之后,执行撤销/重做形成的数据通产被存储于内存中,占用较多的内存,进而导致CPU运行异常卡顿。本申请采用的是链表来记录数据,并且在记录的过程中会限定记录的最大数量或动态判断已记录数据的存储空间,达到最大数量或规定的记录存储空间,就从链表头节点移除一条已记录的数据,再将新记录的数据插入到链表尾节点处,故其占用的内存存储空间是可控的,避免发生数据越存越多导致电脑卡顿的问题。
附图说明
[0037]图1为本专利技术提供的一种数据结构的定义方法的流程示意图;
[0038]图2为本专利技术提供的一种数据结构的创建方法的流程示意图;
[0039]图3为本专利技术提供的一种数据结构的创建方法的流程示意图;
[0040]图4为本专利技术提供的一种数据结构的使用方法的流程示意图;
[0041]图5为本专利技术提供的一种设备的结构示意图。
具体实施方式本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据结构的定义方法,其特征在于,包括:定义与当前编辑模块类型匹配的数据结构体;读取当前数据结构体,根据所述数据结构体创建与所述数据结构体匹配的操作参数集,根据所述操作参数集和所述数据结构体形成一命令参数值;根据所述命令参数值结合一作用对象形成一命令参数;根据所述命令参数结合一命令名称、特征数据标记形成一命令对象;对所述命令对象做数组容器包裹以形成一命令组;根据所述命令组创建与所述命令组匹配的至少一个数据链表;对至少一个所述数据链表做字典包裹处理以形成至少一个操作字典,根据至少一个所述操作字典形成数据结构定义。2.根据权利要求1所述的一种数据结构的定义方法,其特征在于,包括:对至少一个所述数据链表做字典包裹处理以形成至少一个操作字典具体包括:所述操作字典做键值对处理,其中所述操作字典的键定义为模块名称,值定义为数据链表,形成每个模块都对应有一个形成每个模块都对应有一个撤销链表和重做链表。3.根据权利要求1所述的一种数据结构的定义方法,其特征在于,所述数据链表可为撤销链表、重做链表中的任意一个。4.一种数据结构的创建方法,其特征在于,包括:权利要求1~3形成的数据结构定义,具体包括于所述数据结构定义完成的状态下,定义与所述数据结构匹配的记录数据方法;读取所述记录数据方法,应用所述记录数据方法记录与操作行为匹配的操作数据;读取命令名称,根据所述命令名称定义与所述命令名称匹配的动作,以及所述动作的执行方式。5.根据权利要求4所述的数据结构的创建方法,其特征在于,定义与所述数据结构匹配的记录数据方法具体包括:创建命令对象,并对命令对象进行赋值,包括命令名称、作用对象、命令参数、命令参数值、操作前的数...

【专利技术属性】
技术研发人员:周清会杨辰杰魏贤杰杨婷师国超柳荣刘成
申请(专利权)人:北京曼恒数字技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1