数据的遍历方法、装置、可读存储介质及电子装置制造方法及图纸

技术编号:39147066 阅读:20 留言:0更新日期:2023-10-23 14:57
本申请公开了一种数据的遍历方法、装置、可读存储介质及电子装置。该方法包括:获取存储了用于构建树形数据结构的父节点及父节点的子节点的目标列表容器;响应于在目标列表容器中确定树形数据结构的第一目标父节点,从第一目标父节点中获取第一目标子节点在目标列表容器中的第一目标存储位置,其中,第一目标父节点与第一目标子节点之间存在父子关联关系;在目标列表容器中确定与第一目标存储位置之间存在位置关联关系的第二目标存储位置;从目标列表容器的第二目标存储位置上获取第二目标子节点,以对第一目标父节点关联的第一目标子节点与第二目标子节点进行遍历。本申请解决了数据遍历效率低的技术问题。决了数据遍历效率低的技术问题。决了数据遍历效率低的技术问题。

【技术实现步骤摘要】
数据的遍历方法、装置、可读存储介质及电子装置


[0001]本申请涉及数据处理
,具体而言,涉及一种数据的遍历方法、装置、可读存储介质及电子装置。

技术介绍

[0002]目前,在对树形数据结构中的多个节点进行遍历,例如,对八叉树进行遍历时,通常通过八叉树中的每个节点中包含的两个指针数据进行遍历,其中,一个指针数据指向待遍历节点的子节点,用于往下遍历;另一个指针数据指向与待遍历节点处于同一层级的下一个节点,用于横向遍历,由于在遍历时需要逐层访问每个节点,并基于每个节点中的两个指针数据进行遍历,这样,在对八叉树进行频繁遍历的情况下性能开销较大,存在数据遍历效率低的技术问题。
[0003]针对上述的问题,目前尚未提出有效的解决方案。

技术实现思路

[0004]本公开至少部分实施例提供了一种数据的遍历方法、装置、可读存储介质及电子装置,以至少解决数据遍历效率低的技术问题。
[0005]根据本公开其中一实施例,提供了一种数据的遍历方法。该方法可以包括:获取存储了用于构建树形数据结构的父节点及父节点的子节点的目标列表容器,其中,父节点存储有父节点的第一子节点在目标列表容器中的第一存储位置,第一子节点在目标列表容器中的第一存储位置,与父节点中除第一子节点之外的第二子节点在目标列表容器中的第二存储位置存在位置关联关系;响应于在目标列表容器中确定树形数据结构的第一目标父节点,从第一目标父节点中获取第一目标子节点在目标列表容器中的第一目标存储位置,其中,第一目标父节点与第一目标子节点之间存在父子关联关系;在目标列表容器中确定与第一目标存储位置之间存在位置关联关系的第二目标存储位置,其中,第二目标存储位置为第二目标子节点在目标列表容器中的存储位置,第二目标子节点为第一目标父节点关联的子节点中除第一目标子节点之外的其它子节点;从目标列表容器的第二目标存储位置上获取第二目标子节点,以对第一目标父节点关联的第一目标子节点与第二目标子节点进行遍历。
[0006]根据本公开其中一实施例,还提供了一种数据的遍历装置。该装置可以包括:第一获取单元,用于获取存储了用于构建树形数据结构的父节点及父节点的子节点的目标列表容器,其中,父节点存储有父节点的第一子节点在目标列表容器中的第一存储位置,第一子节点在目标列表容器中的第一存储位置,与父节点中除第一子节点之外的第二子节点在目标列表容器中的第二存储位置存在位置关联关系;第二获取单元,用于响应于在目标列表容器中确定树形数据结构的第一目标父节点,从第一目标父节点中获取第一目标子节点在目标列表容器中的第一目标存储位置,其中,第一目标父节点与第一目标子节点之间存在父子关联关系;确定单元,用于在目标列表容器中确定与第一目标存储位置之间存在位置
关联关系的第二目标存储位置,其中,第二目标存储位置为第二目标子节点在目标列表容器中的存储位置,第二目标子节点为第一目标父节点关联的子节点中除第一目标子节点之外的其它子节点;第三获取单元,用于从目标列表容器的第二目标存储位置上获取第二目标子节点,以对第一目标父节点关联的第一目标子节点与第二目标子节点进行遍历。
[0007]根据本公开其中一实施例,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述任一项中的数据的遍历方法。
[0008]根据本公开其中一实施例,还提供了一种电子装置,包括存储器和处理器,存储器中存储有计算机程序,处理器被设置为运行计算机程序以执行上述任一项中的数据的遍历方法。
[0009]在本公开至少部分实施例中,获取存储了用于构建树形数据结构的父节点及父节点的子节点的目标列表容器;响应于在目标列表容器中确定树形数据结构的第一目标父节点,从第一目标父节点中获取第一目标子节点在目标列表容器中的第一目标存储位置,其中,第一目标父节点与第一目标子节点之间存储父子关联关系;在目标列表容器中确定与第一目标存储位置之间存在位置关联关系的第二目标存储位置;从目标列表容器的第二目标存储位置上获取第二目标子节点,以对第一目标父节点关联的第一目标子节点与第二目标子节点进行遍历。也就是说,在本申请实施例中,目标列表容器中存储有用于构建树形数据结构的父节点及父节点的子节点,且每个父节点的子节点在目标列表容器中对应一个目标存储位置,相邻子节点的目标存储位置之前存在位置关联关系,基于此,在遍历树形数据结构时,确定出待遍历父节点的第一目标子节点的第一目标存储位置之后,按照位置关联关系即可确定出待遍历的下一个子节点,按照该方法可以快速的对树形数据结构进行遍历,也即,通过修改数据树形结构以及数据树形结构中的数据结构,提高了八叉树遍历性能,从而实现了提高数据遍历效率的技术效果,进而解决了数据遍历效率低的技术问题。
附图说明
[0010]此处所说明的附图用来提供对本公开的进一步理解,构成本申请的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:
[0011]图1是本公开实施例的一种数据的遍历方法的移动终端的硬件结构框图;
[0012]图2是本公开实施例的一种数据的遍历方法的流程图;
[0013]图3是本公开实施例的一种数据的遍历装置的结构框图;
[0014]图4是本公开实施例的一种电子装置的示意图。
具体实施方式
[0015]为了使本
的人员更好地理解本公开方案,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分的实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。
[0016]需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第
二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0017]在一种可能的实施方式中,针对数据处理
下树形数据结构的遍历,例如,八叉树的遍历,通常通过八叉树中的每个节点中包含的两个指针数据进行遍历,其中,一个指针数据指向待遍历节点的子节点,用于往下遍历;另一个指针数据指向与待遍历节点处于同一层级的下一个节点,用于横向遍历,由于在遍历时需要逐层访问每个节点,并基于每个节点中的两个指针数据进行遍历,这样,在对八叉树进行频繁遍历的情况下性能开销较大,存在数据遍历效率低的技术问题。
[0018]本公开实施例提供了一种数据的遍历方法,获取存储了用于构建树形数据结构的父节点及父节点的子节点本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据的遍历方法,其特征在于,包括:获取存储了用于构建树形数据结构的父节点及所述父节点的子节点的目标列表容器,其中,所述父节点存储有所述父节点的第一子节点在所述目标列表容器中的第一存储位置,所述第一子节点在所述目标列表容器中的第一存储位置,与所述父节点中除所述第一子节点之外的第二子节点在所述目标列表容器中的第二存储位置存在位置关联关系;响应于在所述目标列表容器中确定所述树形数据结构的第一目标父节点,从所述第一目标父节点中获取第一目标子节点在所述目标列表容器中的第一目标存储位置,其中,所述第一目标父节点与所述第一目标子节点之间存在父子关联关系;在所述目标列表容器中确定与所述第一目标存储位置之间存在所述位置关联关系的第二目标存储位置,其中,所述第二目标存储位置为第二目标子节点在所述目标列表容器中的存储位置,所述第二目标子节点为所述第一目标父节点关联的子节点中除所述第一目标子节点之外的其它子节点;从所述目标列表容器的所述第二目标存储位置上获取所述第二目标子节点,以对所述第一目标父节点关联的所述第一目标子节点与所述第二目标子节点进行遍历。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:在所述目标列表容器中,确定所述第一目标存储位置;在所述目标列表容器中,基于确定的所述第一目标存储位置和所述位置关联关系确定所述第二目标存储位置;将所述第一目标子节点和所述第二目标子节点,分别存储在所述第一目标存储位置和所述第二目标存储位置。3.根据权利要求2所述的方法,其特征在于,不同所述父节点对应不同存储线程,所述存储线程用于将对应的所述父节点的所述第一子节点和所述第二子节点,按照所述位置关联关系分别存储在对应的所述第一存储位置和所述第二存储位置,其中,将所述第一目标子节点和所述第二目标子节点,分别存储在所述第一目标存储位置和所述第二目标存储位置,包括:在所述不同存储线程中调用所述第一目标父节点对应的第一存储线程;对调用的所述第一存储线程进行加锁;基于加锁后的所述第一存储线程,将所述第一目标父节点对应的所述第一目标子节点和所述第二目标子节点,按照所述位置关联关系分别存储在对应的所述第一目标存储位置和所述第二目标存储位置。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:响应于所述第一目标子节点和所述第二目标子节点,分别成功存储在对应的所述第一目标存储位置和所述第二目标存储位置,对加锁后的所述第一存储线程进行解锁,且在所述不同存储线程中调用第二目标父节点对应的第二存储线程,其中,所述第二目标父节点为所述树形数据结构中除所述第一目标父节点之外的其它父节点;对调用的所述第二存储线程进行加锁;基于加锁后的所述第二存储线程,将所述第二目标父节点对应的第三目标子节点和第四目标子节点,按照所述位置关联关系分别存储在所述目标列表容器中对应的第三目标存储位置和第四目标存储位置,其中,所述第二目标父节点与所述第三目标子节点之间存在
所述父子关联关系,所述第四目标子节点为所述第二目标父节点关联的子节点中除所述第三目标子节点之外的其它子节点。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:响应于所述第三目标子节点和所述第四目标子节点,分别成功存储在对应的所述第三目标存储位置和所述第四目标存储位置,且所述树形数据结构中存在除所述第一目标父节点和所述第二目标父节点之外的第三目标父节点,将所述树形数据结构中除所述第一目标父节点和所述第二目标父节点之外的第三目标父节点确定为所述第二目标父节点,且将所述第二存储线程确定为所述第一存储线程,返回执行以下步骤:对加锁后的所述第一存储线程进行解锁,且在所述不同存储线程中调用第二目标父节点对应的第二存储线程,直至所述树形数据结构中不存在除所述第一目标父节点和所述第二目标父节点之外的第三目标父节点。6.根据权利要求5所述的方法,其特征在于,所述第二目标父节点为所述第一目标父节点在所述树形数据结构中的下一个待遍历的父节点,所述第三目标父节点为所述第二目标父节点在所述树形数据结构中的下一个待遍历的父节点。7.根据权利要求2所述的方法,其特征在于,在所述目标列表容器中,基于确定的所述第一目标存储位置和所述位置关联关系确定所述第二目标存储位置,包括:基于所述位置关联关系确定所述第二目标存储位置相对于确定的所述第一目标存储位置的位置偏移量;在所述目标列表容器中,按照所述位置偏移量偏移所述第一目标存储位置,得到所述第二目标存储位置。8.根据权利要求7所述...

【专利技术属性】
技术研发人员:伍子鸣
申请(专利权)人:网易杭州网络有限公司
类型:发明
国别省市:

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

1