三维结构的数据存储方法及装置、查询方法及装置的制造方法

文档序号:9597140阅读:691来源:国知局
三维结构的数据存储方法及装置、查询方法及装置的制造方法
【技术领域】
[0001] 本发明涉及一种数据存储领域,特别是涉及一种三维结构的数据存储方法、存储 装置、查询方法及查询装置。
【背景技术】
[0002] 在程序的运行过程中,数据的存取方式,直接影响程序的运行效率。在现行的数据 存储中,主要使用的方法是树的思想,这种方法的实现不容易理解,并且操作起来有一定的 难度。
[0003] 另外一些的方法,哈希表的方法能够精确的定位,但是因为有冗余性,不能避难出 现相同键值可能性,并且在后面查找的时候,要进行遍历整个链表,才能查找到所需要的数 据,使时间增长。
[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] 元件标号说明
[0024] 2 三维结构的数据存储装置
[0025] 21 提供模块
[0026] 22 键值获取模块
[0027] 23 保存模块
[0028] 24 层高设置模块
[0029] 4 三维结构的数据查询装置
[0030] 41 键值获取模块
[0031] 42 结构体数据获取模块
[0032] 43 数据查询模块
[0033] 44 层高切换模块
[0034] S11 ~S14 步骤
[0035] S31 ~S34 步骤
【具体实施方式】
[0036] 以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书 所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实 施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离 本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施 例中的特征可以相互组合。
[0037] 需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构 想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸 绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也 可能更为复杂。
[0038] 正如【背景技术】中所述的,现在使用的数据存储管理方法在实现的方法上过于繁 琐、复杂,从而导致数据的查询效率低下。
[0039] 而本发明通过吸取一些算法特点,针对数据的操作进行简单的操作,实现一种简 单、易懂的方法,实现对于数据的增、删、改、查工能,从而达到对于数据的快速精确处理。
[0040] 请参阅图1,本发明提供一种三维结构的数据存储方法,所述三维结构的数据存储 方法包括以下步骤:
[0041 ] SI 1,提供固定大小的结构体数组,所述结构体数组的下标分别对应不同的键值;
[0042] 在具体实施例中,每们结构体数组的下标(键值)由预设函数获取;
[0043] S12,通过预设函数获得待每位待存储数据的键值;
[0044] S13,将待存储数据分别对应存储于与每位待存储数据的键值相匹配的结构体数 组内;
[0045] S14,为所述结构体数组内的待存储数据依次设置符合预设层高范围的层高。
[0046] 下面再结合【具体实施方式】对本实施例的存储方法进行详细说明。
[0047] 首先提供固定大小的结构体数组,例如可以将结构体数组的的设置为表1所示的 结构,当然也可以根据实际需求进行设置,此不应限制本发明的保护范围。
[0049] 表 1
[0050] 表1所示的结构体数组的下标既是我们要通过设定函数获得的键值。
[0051] 具体获得键值的过程如下:通过设定一个函数,把参数传进函数中,进行一定的运 算获得一个唯一键值。在设计函数时,为了防止下面接入每个节点后面的数据过多,获得键 值函数最好能实现是均匀的分布,这样避免出现某一个节点后面挂上大量的数据,导致整 个三维结构不平衡。设定的函数可以采用现有的函数来实现,在此不再赘述。
[0052] 因为插入的数据不可避免的会出现键值相同的数据,对这些数据的操作是按顺序 的插入到当前的节点的后面,产生一个有序的链表,并且为插入到链表中的每个节点产生 一个随机的层高,但当前产生的层高不能超过层高的最大值(初始设定可以最大的层高上 限)。
[0053] 通过设定函数对参数计算后,获得的键值一定要在数组下标的范围内。这里的每 一个结构体数组成员是一个结构体,每个成员至少要包含一个指向后面节点的指针,便于 产生键值后,向本节点后插入数据,也方便向后索引查找。例如:
[0054] Struct name 1 {
[0055] Struct name2*node ;
[0056] int current_level ;
[0057] }arry[index];
[0058] 在每个节点后面添加数据的方式是一个有高度的有序链表,通过这样的设计使再 查找数据的时候可以实现跳跃查找。其中,current level值记录的是本键值后的有序链 表中,在所有链表成员中最大的层高,但这个层高值不会超过最大限定的MAX_LEVEL (本方 法中设定最大层高限制)。
[0059] 再插入数据时,在查找到所要插入的点后,需要产生一个随机层高,产生的随机数 据最好符合正太分布,这样可以增加查找的高效、稳定,函数由自己定义实现。当产生的层 高大于当前的最大层高,但不超过设定的最大层高时,更新现有的最大层高。另外,在删除 时,查找到数据后,如果删除的数据是当前最大的层高,删除后,更新当前的最大层高。
[0060] 本发明的数据存储方法通过一种三维立体实现方案,首先是根据数据获得键值; 其次是在后续的插入数据时,为当前数据产生一个随机高度,方便后面实现跳跃查询。通过 这样的存储方式实现了数据的有序存储,为后续的查询提供了便利,从而大大提高查询的 效率。
[0061] 参考图2,本发明提供一种三维结
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1