在连续内存中存储二叉树的方法、装置、电子设备和介质制造方法及图纸

技术编号:34860457 阅读:8 留言:0更新日期:2022-09-08 08:03
本发明专利技术提供了一种在连续内存中存储二叉树的方法、装置、电子设备和介质,涉及计算机技术领域,可以应用于金融技术领域。该方法包括:响应于接收到针对第一目标二叉树的指令,确定目标节点的键值,指令包括插入目标节点;其中,第一目标二叉树存储在第一连续内存中;查找第一目标二叉树中是否存在与键值对应的目标节点;在确定第一目标二叉树中不存在与键值对应的目标节点的情况下,确定目标节点的父节点在第一连续内存中的第一相对位置;基于目标节点的父节点在第一连续内存中的第一相对位置,确定第二相对位置;以及在第二相对位置处存储目标节点,得到第二目标二叉树。得到第二目标二叉树。得到第二目标二叉树。

【技术实现步骤摘要】
在连续内存中存储二叉树的方法、装置、电子设备和介质


[0001]本专利技术涉及计算机
,可以应用于金融
,更具体地涉及一种在连续内存中存储二叉树的方法、装置、电子设备和介质。

技术介绍

[0002]二叉树,即二叉查找树,是计算机程序中的一种数据结构。二叉树的每个节点最多有两个子节点,且左子节点的键值小于或等于节点的键值,右子节点的键值大于或等于节点的键值,简单来说,就是左边的值小于或等于右边的值。
[0003]二叉树的节点若离散的分布于内存中,会严重影响性能。如导致较多的内存分配及释放操作;如会降低CPU cache(高速缓存存储器)命中率;又如在拷贝树结构时,需要逐节点拷贝,操作繁琐。

技术实现思路

[0004]鉴于上述问题,本专利技术提供了在连续内存中存储二叉树的方法、装置、电子设备和介质,通过上述在连续内存中存储二叉树的方法能够使目标二叉树始终保持在一块连续的内存中,中间无空洞,从而有利于进行内存优化以及提升性能。
[0005]根据本专利技术的第一个方面,提供了一种在连续内存中存储二叉树的方法,包括:响应于接收到针对第一目标二叉树的指令,确定目标节点的键值,所述指令包括插入目标节点;其中,所述第一目标二叉树存储在第一连续内存中;查找所述第一目标二叉树中是否存在与所述键值对应的目标节点;在确定所述第一目标二叉树中不存在与所述键值对应的目标节点的情况下,确定所述目标节点的父节点在所述第一连续内存中的第一相对位置;基于所述目标节点的父节点在所述第一连续内存中的第一相对位置,确定第二相对位置;以及在所述第二相对位置处存储所述目标节点,得到第二目标二叉树。
[0006]根据本专利技术实施例,所述查找所述第一目标二叉树中是否存在与所述键值对应的目标节点,包括:确定所述第一目标二叉树在第一连续内存中的首地址以及所述第一目标二叉树中任一节点在所述连续内存中的相对位置;根据所述首地址和所述任一节点在所述连续内存中的相对位置,得到所述任一节点的内存地址;以及根据所述任一节点的内存地址,查找所述第一目标二叉树中是否存在与所述键值对应的目标节点。
[0007]根据本专利技术实施例,所述方法还包括,在所述第二相对位置处存储所述目标节点,得到第二目标二叉树之前:确定所述第一连续内存是否存在可用存储空间;在确定所述第一连续内存不存在可用存储空间的情况下,执行内存扩容操作,得到第二连续内存;以及在所述第二连续内存中分配用于存储所述目标节点的内存地址。
[0008]根据本专利技术实施例,所述方法还包括:针对所述第二目标二叉树执行平衡操作,得到连续内存中的平衡二叉树。
[0009]根据本专利技术实施例,所述指令还包括删除目标节点;所述方法还包括:在确定所述第一目标二叉树中存在与所述键值对应的目标节点的情况下,确定所述目标节点在所述第
一连续内存中的第三相对位置;以及删除所述第三相对位置处存储的所述目标节点,得到第三目标二叉树。
[0010]根据本专利技术实施例,所述方法还包括:针对所述第三目标二叉树执行平衡操作,得到连续内存中的平衡二叉树。
[0011]根据本专利技术实施例,所述针对所述第三目标二叉树执行平衡操作,得到连续内存中的平衡二叉树,包括:在针对所述第三目标二叉树执行平衡操作之后,确定所述第三相对位置是否为连续内存中尾节点的位置;在确定所述第三相对位置不为连续内存中尾节点的位置的情况下,将所述尾节点移动至所述第三相对位置,得到连续内存中的平衡二叉树。
[0012]本专利技术的第二方面提供了一种在连续内存中存储二叉树的装置,包括:第一确定模块,用于响应于接收到针对第一目标二叉树的指令,确定目标节点的键值,所述指令包括插入目标节点;其中,所述第一目标二叉树存储在第一连续内存中;查找模块,用于查找所述第一目标二叉树中是否存在与所述键值对应的目标节点;第二确定模块,用于在确定所述第一目标二叉树中不存在与所述键值对应的目标节点的情况下,确定所述目标节点的父节点在所述第一连续内存中的第一相对位置;第三确定模块,用于基于所述目标节点的父节点在所述第一连续内存中的第一相对位置,确定第二相对位置;以及插入节点模块,用于在所述第二相对位置处存储所述目标节点,得到第二目标二叉树。
[0013]本专利技术的第三方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行上述在连续内存中存储二叉树的方法。
[0014]本专利技术的第四方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述在连续内存中存储二叉树的方法。
[0015]本专利技术的第五方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述在连续内存中存储二叉树的方法。
[0016]本实施例提供的在连续内存中存储二叉树的方法,能够使目标二叉树始终保持在一块连续的内存中,中间无空洞,从而有利于进行内存优化以及提升性能。
附图说明
[0017]通过以下参照附图对本专利技术实施例的描述,本专利技术的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
[0018]图1示意性示出了根据本专利技术实施例的在连续内存中存储二叉树的方法、装置、电子设备和介质的应用场景图;
[0019]图2示意性示出了根据本专利技术实施例的在连续内存中存储二叉树的方法的流程图;
[0020]图3示意性示出了根据本专利技术实施例的节点存储于连续内存的不意图;
[0021]图4示意性示出了根据本专利技术实施例的响应指令得到连续内存中的平衡二叉树的执行示意图;
[0022]图5示意性示出了根据本专利技术实施例的在连续内存中存储二叉树的装置的结构框图;以及
[0023]图6示意性示出了根据本专利技术实施例的适于实现在连续内存中存储二叉树的方法
的电子设备的方框图。
具体实施方式
[0024]以下,将参照附图来描述本专利技术的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本专利技术的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本专利技术实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本专利技术的概念。
[0025]在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本专利技术。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
[0026]在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
[0027]在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种在连续内存中存储二叉树的方法,包括:响应于接收到针对第一目标二叉树的指令,确定目标节点的键值,所述指令包括插入目标节点;其中,所述第一目标二叉树存储在第一连续内存中;查找所述第一目标二叉树中是否存在与所述键值对应的目标节点;在确定所述第一目标二叉树中不存在与所述键值对应的目标节点的情况下,确定所述目标节点的父节点在所述第一连续内存中的第一相对位置;基于所述目标节点的父节点在所述第一连续内存中的第一相对位置,确定第二相对位置;以及在所述第二相对位置处存储所述目标节点,得到第二目标二叉树。2.根据权利要求1所述的方法,其中,所述查找所述第一目标二叉树中是否存在与所述键值对应的目标节点,包括:确定所述第一目标二叉树在第一连续内存中的首地址以及所述第一目标二叉树中任一节点在所述连续内存中的相对位置;根据所述首地址和所述任一节点在所述连续内存中的相对位置,得到所述任一节点的内存地址;以及根据所述任一节点的内存地址,查找所述第一目标二叉树中是否存在与所述键值对应的目标节点。3.根据权利要求1所述的方法,其中,所述方法还包括,在所述第二相对位置处存储所述目标节点,得到第二目标二叉树之前:确定所述第一连续内存是否存在可用存储空间;在确定所述第一连续内存不存在可用存储空间的情况下,执行内存扩容操作,得到第二连续内存;以及在所述第二连续内存中分配用于存储所述目标节点的内存地址。4.根据权利要求1所述的方法,还包括:针对所述第二目标二叉树执行平衡操作,得到连续内存中的平衡二叉树。5.根据权利要求1所述的方法,其中,所述指令还包括删除目标节点;所述方法还包括:在确定所述第一目标二叉树中存在与所述键值对应的目标节点的情况下,确定所述目标节点在所述第一连续内存中的第三相对位置;以及删除所述第三相对位置...

【专利技术属性】
技术研发人员:易淑文
申请(专利权)人:建信金融科技有限责任公司
类型:发明
国别省市:

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

1