【技术实现步骤摘要】
数据的遍历方法、装置、可读存储介质及电子装置
[0001]本申请涉及数据处理
,具体而言,涉及一种数据的遍历方法、装置、可读存储介质及电子装置。
技术介绍
[0002]目前,在对树形数据结构中的多个节点进行遍历,例如,对八叉树进行遍历时,通常通过八叉树中的每个节点中包含的两个指针数据进行遍历,其中,一个指针数据指向待遍历节点的子节点,用于往下遍历;另一个指针数据指向与待遍历节点处于同一层级的下一个节点,用于横向遍历,由于在遍历时需要逐层访问每个节点,并基于每个节点中的两个指针数据进行遍历,这样,在对八叉树进行频繁遍历的情况下性能开销较大,存在数据遍历效率低的技术问题。
[0003]针对上述的问题,目前尚未提出有效的解决方案。
技术实现思路
[0004]本公开至少部分实施例提供了一种数据的遍历方法、装置、可读存储介质及电子装置,以至少解决数据遍历效率低的技术问题。
[0005]根据本公开其中一实施例,提供了一种数据的遍历方法。该方法可以包括:获取存储了用于构建树形数据结构的父节点及父节点的子节点的目标列表容器,其中,父节点存储有父节点的第一子节点在目标列表容器中的第一存储位置,第一子节点在目标列表容器中的第一存储位置,与父节点中除第一子节点之外的第二子节点在目标列表容器中的第二存储位置存在位置关联关系;响应于在目标列表容器中确定树形数据结构的第一目标父节点,从第一目标父节点中获取第一目标子节点在目标列表容器中的第一目标存储位置,其中,第一目标父节点与第一目标子节点之间存在父子关联关 ...
【技术保护点】
【技术特征摘要】
1.一种数据的遍历方法,其特征在于,包括:获取存储了用于构建树形数据结构的父节点及所述父节点的子节点的目标列表容器,其中,所述父节点存储有所述父节点的第一子节点在所述目标列表容器中的第一存储位置,所述第一子节点在所述目标列表容器中的第一存储位置,与所述父节点中除所述第一子节点之外的第二子节点在所述目标列表容器中的第二存储位置存在位置关联关系;响应于在所述目标列表容器中确定所述树形数据结构的第一目标父节点,从所述第一目标父节点中获取第一目标子节点在所述目标列表容器中的第一目标存储位置,其中,所述第一目标父节点与所述第一目标子节点之间存在父子关联关系;在所述目标列表容器中确定与所述第一目标存储位置之间存在所述位置关联关系的第二目标存储位置,其中,所述第二目标存储位置为第二目标子节点在所述目标列表容器中的存储位置,所述第二目标子节点为所述第一目标父节点关联的子节点中除所述第一目标子节点之外的其它子节点;从所述目标列表容器的所述第二目标存储位置上获取所述第二目标子节点,以对所述第一目标父节点关联的所述第一目标子节点与所述第二目标子节点进行遍历。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:在所述目标列表容器中,确定所述第一目标存储位置;在所述目标列表容器中,基于确定的所述第一目标存储位置和所述位置关联关系确定所述第二目标存储位置;将所述第一目标子节点和所述第二目标子节点,分别存储在所述第一目标存储位置和所述第二目标存储位置。3.根据权利要求2所述的方法,其特征在于,不同所述父节点对应不同存储线程,所述存储线程用于将对应的所述父节点的所述第一子节点和所述第二子节点,按照所述位置关联关系分别存储在对应的所述第一存储位置和所述第二存储位置,其中,将所述第一目标子节点和所述第二目标子节点,分别存储在所述第一目标存储位置和所述第二目标存储位置,包括:在所述不同存储线程中调用所述第一目标父节点对应的第一存储线程;对调用的所述第一存储线程进行加锁;基于加锁后的所述第一存储线程,将所述第一目标父节点对应的所述第一目标子节点和所述第二目标子节点,按照所述位置关联关系分别存储在对应的所述第一目标存储位置和所述第二目标存储位置。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:响应于所述第一目标子节点和所述第二目标子节点,分别成功存储在对应的所述第一目标存储位置和所述第二目标存储位置,对加锁后的所述第一存储线程进行解锁,且在所述不同存储线程中调用第二目标父节点对应的第二存储线程,其中,所述第二目标父节点为所述树形数据结构中除所述第一目标父节点之外的其它父节点;对调用的所述第二存储线程进行加锁;基于加锁后的所述第二存储线程,将所述第二目标父节点对应的第三目标子节点和第四目标子节点,按照所述位置关联关系分别存储在所述目标列表容器中对应的第三目标存储位置和第四目标存储位置,其中,所述第二目标父节点与所述第三目标子节点之间存在
所述父子关联关系,所述第四目标子节点为所述第二目标父节点关联的子节点中除所述第三目标子节点之外的其它子节点。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:响应于所述第三目标子节点和所述第四目标子节点,分别成功存储在对应的所述第三目标存储位置和所述第四目标存储位置,且所述树形数据结构中存在除所述第一目标父节点和所述第二目标父节点之外的第三目标父节点,将所述树形数据结构中除所述第一目标父节点和所述第二目标父节点之外的第三目标父节点确定为所述第二目标父节点,且将所述第二存储线程确定为所述第一存储线程,返回执行以下步骤:对加锁后的所述第一存储线程进行解锁,且在所述不同存储线程中调用第二目标父节点对应的第二存储线程,直至所述树形数据结构中不存在除所述第一目标父节点和所述第二目标父节点之外的第三目标父节点。6.根据权利要求5所述的方法,其特征在于,所述第二目标父节点为所述第一目标父节点在所述树形数据结构中的下一个待遍历的父节点,所述第三目标父节点为所述第二目标父节点在所述树形数据结构中的下一个待遍历的父节点。7.根据权利要求2所述的方法,其特征在于,在所述目标列表容器中,基于确定的所述第一目标存储位置和所述位置关联关系确定所述第二目标存储位置,包括:基于所述位置关联关系确定所述第二目标存储位置相对于确定的所述第一目标存储位置的位置偏移量;在所述目标列表容器中,按照所述位置偏移量偏移所述第一目标存储位置,得到所述第二目标存储位置。8.根据权利要求7所述...
【专利技术属性】
技术研发人员:伍子鸣,
申请(专利权)人:网易杭州网络有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。