CN111159187A - 二维查询方法、装置、终端设备及计算机可读存储介质 - Google Patents
二维查询方法、装置、终端设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111159187A CN111159187A CN201911383336.XA CN201911383336A CN111159187A CN 111159187 A CN111159187 A CN 111159187A CN 201911383336 A CN201911383336 A CN 201911383336A CN 111159187 A CN111159187 A CN 111159187A
- Authority
- CN
- China
- Prior art keywords
- preset
- data pair
- binary tree
- layer
- preset data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000003780 insertion Methods 0.000 claims description 10
- 230000037431 insertion Effects 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 7
- 238000010276 construction Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种二维查询方法、装置、终端设备及计算机可读存储介质,所述方法包括:获取数据库中的多个预设对象的预设数据对;按照二叉搜索树规则,将预设数据对插入到二叉树中并保存;获取数据查询请求,数据查询请求中携带有待查询对象的目标数据对;按照二叉搜索树规则,从二叉树中查询目标数据对;若二叉树中存在与目标数据对相匹配的预设数据对,则将预设数据对所标识的预设对象作为查询结果;返回查询结果。本申请与相关技术相比,结合二叉树的数据容量大、动态性能强的优点,以及在生成和遍历上具有金字塔式逻辑等级的特点,实现对待查询对象的快速查询,降低了查询的复杂度,大大提高了查询效率。
Description
技术领域
本申请涉及多媒体通讯技术领域,尤其涉及一种二维查询方法、装置、终端设备及计算机可读存储介质。
背景技术
近几年移动终端用户的增长迅猛,移动终端逐渐成为继电视、广播、报刊、互联网之后的全新媒介形式,越来越多的用户通过移动终端访问视频播放平台上,用户可以通过视频播放平台进行视频内容创作和分发等操作。视频播放平台向用户提供MCN(Multi-Channel Network,多频道网络的产品形态)结构的注册等操作,每个MCN结构中包含多个不同的用户,MCN结构具有唯一的ID标识mcnId,用户具有唯一的ID标识userId,mcnId和userId是多对多的关系,一个MCN结构可以有多个用户,一个用户也可以加入到多个MCN结构中,需要根据mcnId和userId两个维度的信息才能确定一个用户的信息。
相关技术通过Mysql数据库以MCN结构的ID标识mcnId和用户的ID标识userId这两个维度的信息为查询条件进行查询,查询效率较低。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
为了解决相关技术通过Mysql数据库以MCN结构的ID标识mcnId和用户的ID标识userId这两个维度的信息为查询条件进行查询,查询效率较低的技术问题,本申请实施例提供了一种二维查询方法、装置、终端设备及计算机可读存储介质。
有鉴于此,第一方面,本申请实施例提供了一种二维查询方法,所述方法包括以下步骤:
获取数据库中的多个预设对象的预设数据对;
按照二叉搜索树规则,将所述预设数据对插入到二叉树中并保存,其中,所述二叉树包括多个结点,每一个所述结点对应一个预设数据对;
获取数据查询请求,其中,所述数据查询请求中携带有待查询对象的目标数据对;
按照二叉搜索树规则,从所述二叉树中查询所述目标数据对;
若所述二叉树中存在与所述目标数据对相匹配的预设数据对,则将所述预设数据对所标识的预设对象作为查询结果;
返回所述查询结果。
结合第一方面,在第一方面第一种可能的实施方式中,所述目标数据对包括第一元素和第二元素,所述预设数据对包括第一预设元素和第二预设元素,所述按照二叉搜索树规则,从所述二叉树中查询所述目标数据对,包括:
将所述目标数据对的第一元素与所述二叉树的第零层的根结点的第一预设元素进行比较,其中,所述根结点为所述数据库中读取到的第一个所述预设数据对,所述根结点与所述二叉树的第一层的左子结点和右子结点相连接;
若所述第一元素小于所述第一预设元素,则将所述二叉树的第一层的左子结点的所述第二预设元素与所述第二元素进行比较;若所述第一元素大于所述第一预设元素,则将所述二叉树的第一层的右子结点的所述第二预设元素与所述第二元素进行比较;
若所述第二元素大于所述第二预设元素,则将所述二叉树的第二层的右子结点的所述第一预设元素与所述第一元素进行比较;若所述第二元素小于所述第二预设元素,则将所述二叉树的第二层的左子结点的所述第一预设元素和所述第一元素进行比较,直至查询至所述二叉树的叶子结点,所述叶子结点表示所述二叉树中不具有子结点的终端结点;
若所述第一元素与所述预设数据对的所述第一预设元素相匹配,且所述第二元素与所述预设数据对的所述第二预设元素相匹配,则确定所述预设数据对与所述目标数据对相匹配。
结合第一方面,在第一方面第二种可能的实施方式中,所述按照二叉搜索树规则,将所述预设数据对插入到二叉树中并保存,包括:
遍历所述数据库中全部的所述预设数据对;
按照所述预设数据对的遍历顺序,将遍历的第一预设数据对插入到所述二叉树的第零层,作为所述二叉树的根结点;
将遍历的第二预设数据对的第一预设元素与所述根结点的第一预设元素进行比较;
若所述第二预设数据对的第一预设元素小于所述根结点的第一预设元素,则将所述第二预设数据对插入到所述二叉树的第一层的左子结点中;若所述第二预设数据对的第一预设元素大于所述根结点的第一预设元素,则将所述第二预设数据对插入到所述二叉树的第一层的右子结点中;
将遍历的第三预设数据对的第二预设元素与所述第一层的左子结点的第二预设元素进行比较;
若所述第三预设数据对的第二预设元素大于所述第一层的左子结点的第二预设元素,则将所述第三预设数据对插入到所述二叉树的第二层的右子结点中;若所述第三预设数据对的第二预设元素小于所述第一层的左子结点的第二预设元素,则将所述第三数据对插入到所述二叉树的第二层的左子结点中,直至将全部的所述预设数据对插入到所述二叉树的相应结点中。
结合第一方面,在第一方面第三种可能的实施方式中,所述方法还包括:
当查询至所述二叉树中的叶子结点时,若仍未查询到与所述目标数据对相匹配的预设数据对,则返回查询失败的结果。
第二方面,本申请实施例提供了一种二维查询装置,所述装置包括:
预设数据对获取单元,用于获取数据库中的多个预设对象的预设数据对;
二叉树构建单元,用于按照二叉搜索树规则,将所述预设数据对插入到二叉树中并保存,其中,所述二叉树包括多个结点,每一个所述结点对应一个预设数据对;
数据请求获取单元,用于获取数据查询请求,其中,所述数据查询请求中携带有待查询对象的目标数据对;
查询单元,用于按照二叉搜索树规则,从所述二叉树中查询所述目标数据对;
查询结果确定单元,用于若所述二叉树中存在与所述目标数据对相匹配的预设数据对,则将所述预设数据对所标识的预设对象作为查询结果;
查询结果返回单元,用于返回所述查询结果。
结合第二方面,在第二方面第一种可能的实施方式中,所述目标数据对包括第一元素和第二元素,所述预设数据对包括第一预设元素和第二预设元素,所述查询单元包括:
第零层元素比较子单元,用于将所述目标数据对的第一元素与所述二叉树的第零层的根结点的第一预设元素进行比较,其中,所述根结点为所述数据库中读取到的第一个所述预设数据对,所述根结点与所述二叉树的第一层的左子结点和右子结点相连接;
第一层元素比较子单元,用于若所述第一元素小于所述第一预设元素,则将所述二叉树的第一层的左子结点的所述第二预设元素与所述第二元素进行比较;若所述第一元素大于所述第一预设元素,则将所述二叉树的第一层的右子结点的所述第二预设元素与所述第二元素进行比较;
第二层元素比较子单元,用于若所述第二元素大于所述第二预设元素,则将所述二叉树的第二层的右子结点的所述第一预设元素与所述第一元素进行比较;若所述第二元素小于所述第二预设元素,则将所述二叉树的第二层的左子结点的所述第一预设元素和所述第一元素进行比较,直至查询至所述二叉树的叶子结点,所述叶子结点表示所述二叉树中不具有子结点的终端结点;
匹配结果确定子单元,用于若所述第一元素与所述预设数据对的所述第一预设元素相匹配,且所述第二元素与所述预设数据对的所述第二预设元素相匹配,则确定所述预设数据对与所述目标数据对相匹配。
结合第二方面,在第二方面第二种可能的实施方式中,所述二叉树构建单元包括:
遍历子单元,用于遍历所述数据库中全部的所述预设数据对;
第零层插入子单元,用于按照所述预设数据对的遍历顺序,将遍历的第一预设数据对插入到所述二叉树的第零层,作为所述二叉树的根结点;
第一元素比较子单元,用于将遍历的第二预设数据对的第一预设元素与所述根结点的第一预设元素进行比较;
第一层插入子单元,用于若所述第二预设数据对的第一预设元素小于所述根结点的第一预设元素,则将所述第二预设数据对插入到所述二叉树的第一层的左子结点中;若所述第二预设数据对的第一预设元素大于所述根结点的第一预设元素,则将所述第二预设数据对插入到所述二叉树的第一层的右子结点中;
第二元素比较子单元,用于将遍历的第三预设数据对的第二预设元素与所述第一层的左子结点的第二预设元素进行比较;
第二层插入子单元,用于若所述第三预设数据对的第二预设元素大于所述第一层的左子结点的第二预设元素,则将所述第三预设数据对插入到所述二叉树的第二层的右子结点中;若所述第三预设数据对的第二预设元素小于所述第一层的左子结点的第二预设元素,则将所述第三数据对插入到所述二叉树的第二层的左子结点中,直至将全部的所述预设数据对插入到所述二叉树的相应结点中。
结合第二方面,在第二方面第三种可能的实施方式中,所述装置还包括:
查询失败结果返回单元,用于当查询至所述二叉树中的叶子结点时,若仍未查询到与所述目标数据对相匹配的预设数据对,则返回查询失败的结果。
第三方面,本申请实施例提供了一种终端设备,所述终端设备包括:至少一个处理器、存储器、至少一个网络接口和用户接口;
所述至少一个处理器、存储器、至少一个网络接口和用户接口通过总线系统耦合在一起;
所述处理器通过调用所述存储器存储的程序或指令,用于执行如第一方面所述的二维查询方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有二维查询程序,所述二维查询程序被处理器执行时实现如第一方面所述的二维查询方法的步骤。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
本申请实施例提供的一种二维查询方法、装置、终端设备及计算机可读存储介质,该二维查询方法通过获取数据库中的多个预设对象的预设数据对;按照二叉搜索树规则,将所述预设数据对插入到二叉树中并保存,其中,所述二叉树包括多个结点,每一个所述结点对应一个预设数据对;获取数据查询请求,其中,所述数据查询请求中携带有待查询对象的目标数据对;按照二叉搜索树规则,从所述二叉树中查询所述目标数据对;若所述二叉树中存在与所述目标数据对相匹配的预设数据对,则将所述预设数据对所标识的预设对象作为查询结果;返回所述查询结果。本申请实施例与相关技术相比,将数据库存储的预设数据对以二叉搜索树规则插入到二叉树中,以二叉树树的形式进行保存,当接收到数据查询请求时,从二叉树中以二叉搜索树规则查找目标数据对,结合二叉树的数据容量大、动态性能强的优点,以及在生成和遍历上具有金字塔式逻辑等级的特点,使得待查询对象的查询过程更加简单直接,实现快速查询,降低了查询的复杂度,大大提高了查询效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种二维查询方法的流程示意图;
图2为本申请实施例提供的二叉树的示意图;
图3为本申请实施例提供的一种二维查询装置的结构示意图;
图4为本申请实施例提供的一种终端设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
现在将参考附图描述实现本发明各个实施例的服务器。在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,“模块”与“部件”可以混合地使用。
本申请实施例提供了一种二维查询方法,应用于视频播放平台,如图1所示,该方法可以包括以下步骤:
S101、获取数据库中的多个预设对象的预设数据对。
其中,所述预设数据对包括第一预设元素和第二预设元素,所述第一元素和元素为所述预设数据对的第一个元素,所述第二预设元素为所述预设数据对的第二个元素。
可选的,预设数据对包括两个维度的查询条件,即第一预设元素和第二预设元素,例如,第一预设元素包括但不限于MCN(Multi-Channel Network,多频道网络的产品形态)结构(视频播放平台向用户提供MCN结构的注册等操作)的唯一的ID标识mcnId,第二预设元素包括但不限于用户的唯一的ID标识userId。
S102、按照二叉搜索树规则,将所述预设数据对插入到二叉树中并保存,其中,所述二叉树包括多个结点,每一个所述结点分别对应一个预设数据对。
可选的,按照二叉搜索树规则,将所述预设数据对插入到二叉树中并保存,包括:
遍历所述数据库中全部的所述预设数据对;
按照所述预设数据对的遍历顺序,将遍历的第一预设数据对插入到所述二叉树的第零层,作为所述二叉树的根结点;
将遍历的第二预设数据对的第一预设元素与所述根结点的第一预设元素进行比较;
若所述第二预设数据对的第一预设元素小于所述根结点的第一预设元素,则将所述第二预设数据对插入到所述二叉树的第一层的左子结点中;若所述第二预设数据对的第一预设元素大于所述根结点的第一预设元素,则将所述第二预设数据对插入到所述二叉树的第一层的右子结点中;
将遍历的第三预设数据对的第二预设元素与所述第一层的左子结点的第二预设元素进行比较;
若所述第三预设数据对的第二预设元素大于所述第一层的左子结点的第二预设元素,则将所述第三预设数据对插入到所述二叉树的第二层的右子结点中;若所述第三预设数据对的第二预设元素小于所述第一层的左子结点的第二预设元素,则将所述第三数据对插入到所述二叉树的第二层的左子结点中,直至将全部的所述预设数据对插入到所述二叉树的相应结点中。
如图2所示,为二叉树的示意图,例如遍历的全部的预设数据对包括:(54,14)、(40,16)、(41,15)、(41,17)、(30,18)、(70,10)、(84,7)、(90,30),按照预设数据对的遍历顺序,将最先遍历的预设数据对(54,14)插入到所述二叉树的第零层,作为所述二叉树的根结点;将遍历的预设数据对(40,16)的第一预设元素40与根结点的第一预设元素54进行比较,由于40小于54,因此将预设数据对(40,16)插入到所述二叉树的第一层的左子结点中;将遍历的预设数据对(41,15)的第二预设元素15与第一层的左子结点(40,16)的第二预设元素16进行比较,由于15小于16,因此将预设数据对(41,15)插入到二叉树的第二层的左子结点中;将遍历的预设数据对(41,17)的第二预设元素17与第一层的左子结点(40,16)的第二预设元素16进行比较,由于17大于16,因此将预设数据对(41,17)插入到二叉树的第二层的右子结点中,同理,将预设数据对(30,18)插入到二叉树的第三层的左子结点中,由于结点(30,18为不具有子结点的终端结点,也称为二叉树的叶子结点。
将预设数据对(70,10)的第一预设元素70与根结点的第一预设元素54进行比较,由于70大于54,因此将预设数据对(40,16)插入到所述二叉树的第一层的右子结点中;同理将预设数据对(84,7)插入到第二层的左子结点中,将预设数据对(90,30)入到第二层的右子结点中,直至将全部的所述预设数据对插入到所述二叉树的相应结点中。
本申请实施例通过按照二叉搜索树规则,根据预设数据对的第一元素将相应的预设数据对插入到二叉树的奇数层上,以及,根据预设数据对的第二元素将相应的预设数据对插入到二叉树的偶数层上,维护二叉树的平衡。
S103、获取数据查询请求,其中,所述数据查询请求中携带有待查询对象的目标数据对。
S104、按照二叉搜索树规则,从所述二叉树中查询所述目标数据对。
可选的,所述目标数据对包括第一元素和第二元素,所述预设数据对包括第一预设元素和第二预设元素,所述按照二叉搜索树规则,从所述二叉树中查询所述目标数据对,包括:
将所述目标数据对的第一元素与所述二叉树的第零层的根结点的第一预设元素进行比较,其中,所述根结点为所述数据库中读取到的第一个所述预设数据对,所述根结点与所述二叉树的第一层的左子结点和右子结点相连接;
若所述第一元素小于所述第一预设元素,则将所述二叉树的第一层的左子结点的所述第二预设元素与所述第二元素进行比较;若所述第一元素大于所述第一预设元素,则将所述二叉树的第一层的右子结点的所述第二预设元素与所述第二元素进行比较;
若所述第二元素大于所述第二预设元素,则将所述二叉树的第二层的右子结点的所述第一预设元素与所述第一元素进行比较;若所述第二元素小于所述第二预设元素,则将所述二叉树的第二层的左子结点的所述第一预设元素和所述第一元素进行比较,直至查询至所述二叉树的叶子结点,所述叶子结点表示所述二叉树中不具有子结点的终端结点;
若所述第一元素与所述预设数据对的所述第一预设元素相匹配,且所述第二元素与所述预设数据对的所述第二预设元素相匹配,则确定所述预设数据对与所述目标数据对相匹配。
如图2所示,设目标数据对为(30,18),基于二叉搜索树规则,将目标数据对(30,18)的第一元素30与二叉树的第零层的根结点(54,14)的第一预设元素54进行比较;由于30小于54,因此,继续将目标数据对(30,18)的第二元素18与二叉树的第一层的左子结点(40,16)的第二预设元素16进行比较;由于18大于16,因此,继续将目标数据对(30,18)的第一元素30与二叉树的第二层的右子结点的第一预设元素41进行比较;由于30小于41,因此,继续将目标数据对(30,18)与二叉树的第三层的左子结点(30,18)进行比较,得到相匹配的查询结果。
S105、若所述二叉树中存在与所述目标数据对相匹配的预设数据对,则将所述预设数据对所标识的预设对象作为查询结果。
如上所述,将匹配到的二叉树的第三层的左子结点(30,18)作为查询结果。
S106、返回所述查询结果。
可选的,所述方法还包括:
当查询至所述二叉树中的叶子结点时,若仍未查询到与所述目标数据对相匹配的预设数据对,则返回查询失败的结果,说明二叉树中不存在相匹配的要查询的对象。
本申请实施例与相关技术相比,将数据库存储的预设数据对以二叉搜索树规则插入到二叉树中,以二叉树树的形式进行保存,当接收到数据查询请求时,从二叉树中以二叉搜索树规则查找目标数据对,具体的,根据待查询对象的第一元素和第二元素这两个维度信息从二叉树中查找目标数据对,结合二叉树的数据容量大、动态性能强的优点,以及在生成和遍历上具有金字塔式逻辑等级的特点,使得待查询对象的查询过程更加简单直接,实现快速查询,降低了查询的复杂度,大大提高了查询效率。
需要说明的是,虽然图1对二维查询的相关方案进行了描述,但本领域的技术人员应当理解,还可通过继续根据其它元素遍历二维树实现二维查询。
如图3所示,本发明实施例还提供了一种二维查询装置,该装置包括:
预设数据对获取单元31,用于获取数据库中的多个预设对象的预设数据对;
二叉树构建单元32,用于按照二叉搜索树规则,将所述预设数据对插入到二叉树中并保存,其中,所述二叉树包括多个结点,每一个所述结点对应一个预设数据对;
数据请求获取单元33,用于获取数据查询请求,其中,所述数据查询请求中携带有待查询对象的目标数据对;
查询单元34,用于按照二叉搜索树规则,从所述二叉树中查询所述目标数据对;
查询结果确定单元35,用于若所述二叉树中存在与所述目标数据对相匹配的预设数据对,则将所述预设数据对所标识的预设对象作为查询结果;
查询结果返回单元36,用于返回所述查询结果。
在本申请另一实施例中,所述目标数据对包括第一元素和第二元素,所述预设数据对包括第一预设元素和第二预设元素,所述查询单元34包括:
第零层元素比较子单元(图中未示出),用于将所述目标数据对的第一元素与所述二叉树的第零层的根结点的第一预设元素进行比较,其中,所述根结点为所述数据库中读取到的第一个所述预设数据对,所述根结点与所述二叉树的第一层的左子结点和右子结点相连接;
第一层元素比较子单元(图中未示出),用于若所述第一元素小于所述第一预设元素,则将所述二叉树的第一层的左子结点的所述第二预设元素与所述第二元素进行比较;若所述第一元素大于所述第一预设元素,则将所述二叉树的第一层的右子结点的所述第二预设元素与所述第二元素进行比较;
第二层元素比较子单元(图中未示出),用于若所述第二元素大于所述第二预设元素,则将所述二叉树的第二层的右子结点的所述第一预设元素与所述第一元素进行比较;若所述第二元素小于所述第二预设元素,则将所述二叉树的第二层的左子结点的所述第一预设元素和所述第一元素进行比较,直至查询至所述二叉树的叶子结点,所述叶子结点表示所述二叉树中不具有子结点的终端结点;
匹配结果确定子单元(图中未示出),用于若所述第一元素与所述预设数据对的所述第一预设元素相匹配,且所述第二元素与所述预设数据对的所述第二预设元素相匹配,则确定所述预设数据对与所述目标数据对相匹配。
在本申请另一实施例中,所述二叉树构建单元32包括:
遍历子单元(图中未示出),用于遍历所述数据库中全部的所述预设数据对;
第零层插入子单元(图中未示出),用于按照所述预设数据对的遍历顺序,将遍历的第一预设数据对插入到所述二叉树的第零层,作为所述二叉树的根结点;
第一元素比较子单元(图中未示出),用于将遍历的第二预设数据对的第一预设元素与所述根结点的第一预设元素进行比较;
第一层插入子单元(图中未示出),用于若所述第二预设数据对的第一预设元素小于所述根结点的第一预设元素,则将所述第二预设数据对插入到所述二叉树的第一层的左子结点中;若所述第二预设数据对的第一预设元素大于所述根结点的第一预设元素,则将所述第二预设数据对插入到所述二叉树的第一层的右子结点中;
第二元素比较子单元(图中未示出),用于将遍历的第三预设数据对的第二预设元素与所述第一层的左子结点的第二预设元素进行比较;
第二层插入子单元(图中未示出),用于若所述第三预设数据对的第二预设元素大于所述第一层的左子结点的第二预设元素,则将所述第三预设数据对插入到所述二叉树的第二层的右子结点中;若所述第三预设数据对的第二预设元素小于所述第一层的左子结点的第二预设元素,则将所述第三数据对插入到所述二叉树的第二层的左子结点中,直至将全部的所述预设数据对插入到所述二叉树的相应结点中。
在本申请另一实施例中,所述装置还包括:
查询失败结果返回单元(图中未示出),用于当查询至所述二叉树中的叶子结点时,若仍未查询到与所述目标数据对相匹配的预设数据对,则返回查询失败的结果。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有二维查询程序,所述二维查询程序被处理器执行时实现如各方法实施例所述的二维查询方法的步骤,例如包括:
获取数据库中的多个预设对象的预设数据对;
按照二叉搜索树规则,将所述预设数据对插入到二叉树中并保存,其中,所述二叉树包括多个结点,每一个所述结点对应一个预设数据对;
获取数据查询请求,其中,所述数据查询请求中携带有待查询对象的目标数据对;
按照二叉搜索树规则,从所述二叉树中查询所述目标数据对;
若所述二叉树中存在与所述目标数据对相匹配的预设数据对,则将所述预设数据对所标识的预设对象作为查询结果;
返回所述查询结果。
图4是本发明另一个实施例提供的终端设备的结构示意图。图4所示的终端设备400包括:至少一个处理器401、存储器402、至少一个网络接口404和其他的用户接口403。终端设备400中的各个组件通过总线系统405耦合在一起。可理解,总线系统405用于实现这些组件之间的连接通信。总线系统405除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图4中将各种总线都标为总线系统405。
其中,用户接口403可以包括显示器、键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等。
可以理解,本发明实施例中的存储器402可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-OnlyMemory,ROM)、可编程只读存储器(ProgrammableROM,PROM)、可擦除可编程只读存储器(ErasablePROM,EPROM)、电可擦除可编程只读存储器(ElectricallyEPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(RandomAccessMemory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(StaticRAM,SRAM)、动态随机存取存储器(DynamicRAM,DRAM)、同步动态随机存取存储器(SynchronousDRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(DoubleDataRateSDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(SynchlinkDRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambusRAM,DRRAM)。本文描述的存储器402旨在包括但不限于这些和任意其它适合类型的存储器。
在一些实施方式中,存储器402存储了如下的元素,可执行单元或者数据结构,或者他们的子集,或者他们的扩展集:操作系统4021和应用程序4022。
其中,操作系统4021,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序4022,包含各种应用程序,例如媒体播放器(MediaPlayer)、浏览器(Browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序422中。
在本发明实施例中,通过调用存储器402存储的程序或指令,具体的,可以是应用程序4022中存储的程序或指令,处理器401用于执行各方法实施例所提供的方法步骤,例如包括:
获取数据库中的多个预设对象的预设数据对;
按照二叉搜索树规则,将所述预设数据对插入到二叉树中并保存,其中,所述二叉树包括多个结点,每一个所述结点对应一个预设数据对;
获取数据查询请求,其中,所述数据查询请求中携带有待查询对象的目标数据对;
按照二叉搜索树规则,从所述二叉树中查询所述目标数据对;
若所述二叉树中存在与所述目标数据对相匹配的预设数据对,则将所述预设数据对所标识的预设对象作为查询结果;
返回所述查询结果。
上述本发明实施例揭示的方法可以应用于处理器401中,或者由处理器401实现。处理器401可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器401中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器401可以是通用处理器、数字信号处理器(DigitalSignalProcessor,DSP)、专用集成电路(ApplicationSpecific IntegratedCircuit,ASIC)、现成可编程门阵列(FieldProgrammableGateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器402,处理器401读取存储器402中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecificIntegratedCircuits,ASIC)、数字信号处理器(DigitalSignalProcessing,DSP)、数字信号处理设备(DSPDevice,DSPD)、可编程逻辑设备(ProgrammableLogicDevice,PLD)、现场可编程门阵列(Field-ProgrammableGateArray,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文所述功能的单元来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种二维查询方法,其特征在于,所述方法包括以下步骤:
获取数据库中的多个预设对象的预设数据对;
按照二叉搜索树规则,将所述预设数据对插入到二叉树中并保存,其中,所述二叉树包括多个结点,每一个所述结点对应一个预设数据对;
获取数据查询请求,其中,所述数据查询请求中携带有待查询对象的目标数据对;
按照二叉搜索树规则,从所述二叉树中查询所述目标数据对;
若所述二叉树中存在与所述目标数据对相匹配的预设数据对,则将所述预设数据对所标识的预设对象作为查询结果;
返回所述查询结果。
2.根据权利要求1所述的方法,其特征在于,所述目标数据对包括第一元素和第二元素,所述预设数据对包括第一预设元素和第二预设元素,所述按照二叉搜索树规则,从所述二叉树中查询所述目标数据对,包括:
将所述目标数据对的第一元素与所述二叉树的第零层的根结点的第一预设元素进行比较,其中,所述根结点为所述数据库中读取到的第一个所述预设数据对,所述根结点与所述二叉树的第一层的左子结点和右子结点相连接;
若所述第一元素小于所述第一预设元素,则将所述二叉树的第一层的左子结点的所述第二预设元素与所述第二元素进行比较;若所述第一元素大于所述第一预设元素,则将所述二叉树的第一层的右子结点的所述第二预设元素与所述第二元素进行比较;
若所述第二元素大于所述第二预设元素,则将所述二叉树的第二层的右子结点的所述第一预设元素与所述第一元素进行比较;若所述第二元素小于所述第二预设元素,则将所述二叉树的第二层的左子结点的所述第一预设元素和所述第一元素进行比较,直至查询至所述二叉树的叶子结点,所述叶子结点表示所述二叉树中不具有子结点的终端结点;
若所述第一元素与所述预设数据对的所述第一预设元素相匹配,且所述第二元素与所述预设数据对的所述第二预设元素相匹配,则确定所述预设数据对与所述目标数据对相匹配。
3.根据权利要求1所述的方法,其特征在于,所述按照二叉搜索树规则,将所述预设数据对插入到二叉树中并保存,包括:
遍历所述数据库中全部的所述预设数据对;
按照所述预设数据对的遍历顺序,将遍历的第一预设数据对插入到所述二叉树的第零层,作为所述二叉树的根结点;
将遍历的第二预设数据对的第一预设元素与所述根结点的第一预设元素进行比较;
若所述第二预设数据对的第一预设元素小于所述根结点的第一预设元素,则将所述第二预设数据对插入到所述二叉树的第一层的左子结点中;若所述第二预设数据对的第一预设元素大于所述根结点的第一预设元素,则将所述第二预设数据对插入到所述二叉树的第一层的右子结点中;
将遍历的第三预设数据对的第二预设元素与所述第一层的左子结点的第二预设元素进行比较;
若所述第三预设数据对的第二预设元素大于所述第一层的左子结点的第二预设元素,则将所述第三预设数据对插入到所述二叉树的第二层的右子结点中;若所述第三预设数据对的第二预设元素小于所述第一层的左子结点的第二预设元素,则将所述第三数据对插入到所述二叉树的第二层的左子结点中,直至将全部的所述预设数据对插入到所述二叉树的相应结点中。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当查询至所述二叉树中的叶子结点时,若仍未查询到与所述目标数据对相匹配的预设数据对,则返回查询失败的结果。
5.一种二维查询装置,其特征在于,所述装置包括:
预设数据对获取单元,用于获取数据库中的多个预设对象的预设数据对;
二叉树构建单元,用于按照二叉搜索树规则,将所述预设数据对插入到二叉树中并保存,其中,所述二叉树包括多个结点,每一个所述结点对应一个预设数据对;
数据请求获取单元,用于获取数据查询请求,其中,所述数据查询请求中携带有待查询对象的目标数据对;
查询单元,用于按照二叉搜索树规则,从所述二叉树中查询所述目标数据对;
查询结果确定单元,用于若所述二叉树中存在与所述目标数据对相匹配的预设数据对,则将所述预设数据对所标识的预设对象作为查询结果;
查询结果返回单元,用于返回所述查询结果。
6.根据权利要求5所述的装置,其特征在于,所述目标数据对包括第一元素和第二元素,所述预设数据对包括第一预设元素和第二预设元素,所述查询单元包括:
第零层元素比较子单元,用于将所述目标数据对的第一元素与所述二叉树的第零层的根结点的第一预设元素进行比较,其中,所述根结点为所述数据库中读取到的第一个所述预设数据对,所述根结点与所述二叉树的第一层的左子结点和右子结点相连接;
第一层元素比较子单元,用于若所述第一元素小于所述第一预设元素,则将所述二叉树的第一层的左子结点的所述第二预设元素与所述第二元素进行比较;若所述第一元素大于所述第一预设元素,则将所述二叉树的第一层的右子结点的所述第二预设元素与所述第二元素进行比较;
第二层元素比较子单元,用于若所述第二元素大于所述第二预设元素,则将所述二叉树的第二层的右子结点的所述第一预设元素与所述第一元素进行比较;若所述第二元素小于所述第二预设元素,则将所述二叉树的第二层的左子结点的所述第一预设元素和所述第一元素进行比较,直至查询至所述二叉树的叶子结点,所述叶子结点表示所述二叉树中不具有子结点的终端结点;
匹配结果确定子单元,用于若所述第一元素与所述预设数据对的所述第一预设元素相匹配,且所述第二元素与所述预设数据对的所述第二预设元素相匹配,则确定所述预设数据对与所述目标数据对相匹配。
7.根据权利要求5所述的装置,其特征在于,所述二叉树构建单元包括:
遍历子单元,用于遍历所述数据库中全部的所述预设数据对;
第零层插入子单元,用于按照所述预设数据对的遍历顺序,将遍历的第一预设数据对插入到所述二叉树的第零层,作为所述二叉树的根结点;
第一元素比较子单元,用于将遍历的第二预设数据对的第一预设元素与所述根结点的第一预设元素进行比较;
第一层插入子单元,用于若所述第二预设数据对的第一预设元素小于所述根结点的第一预设元素,则将所述第二预设数据对插入到所述二叉树的第一层的左子结点中;若所述第二预设数据对的第一预设元素大于所述根结点的第一预设元素,则将所述第二预设数据对插入到所述二叉树的第一层的右子结点中;
第二元素比较子单元,用于将遍历的第三预设数据对的第二预设元素与所述第一层的左子结点的第二预设元素进行比较;
第二层插入子单元,用于若所述第三预设数据对的第二预设元素大于所述第一层的左子结点的第二预设元素,则将所述第三预设数据对插入到所述二叉树的第二层的右子结点中;若所述第三预设数据对的第二预设元素小于所述第一层的左子结点的第二预设元素,则将所述第三数据对插入到所述二叉树的第二层的左子结点中,直至将全部的所述预设数据对插入到所述二叉树的相应结点中。
8.根据权利要求5所述的装置,其特征在于,所述装置还包括:
查询失败结果返回单元,用于当查询至所述二叉树中的叶子结点时,若仍未查询到与所述目标数据对相匹配的预设数据对,则返回查询失败的结果。
9.一种终端设备,其特征在于,所述终端设备包括:至少一个处理器、存储器、至少一个网络接口和用户接口;
所述至少一个处理器、存储器、至少一个网络接口和用户接口通过总线系统耦合在一起;
所述处理器通过调用所述存储器存储的程序或指令,用于执行如权利要求1至4中任意一项所述的二维查询方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有二维查询程序,所述二维查询程序被处理器执行时实现如权利要求1至4中任一项所述的二维查询方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911383336.XA CN111159187A (zh) | 2019-12-27 | 2019-12-27 | 二维查询方法、装置、终端设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911383336.XA CN111159187A (zh) | 2019-12-27 | 2019-12-27 | 二维查询方法、装置、终端设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111159187A true CN111159187A (zh) | 2020-05-15 |
Family
ID=70558800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911383336.XA Pending CN111159187A (zh) | 2019-12-27 | 2019-12-27 | 二维查询方法、装置、终端设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111159187A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112732756A (zh) * | 2020-12-30 | 2021-04-30 | 北京奇艺世纪科技有限公司 | 数据查询方法、装置、设备及存储介质 |
CN113568956A (zh) * | 2021-08-05 | 2021-10-29 | 武汉美之修行信息科技有限公司 | 一种近似产品查询方法、装置及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030009474A1 (en) * | 2001-07-05 | 2003-01-09 | Hyland Kevin J. | Binary search trees and methods for establishing and operating them |
CN102693296A (zh) * | 2012-05-16 | 2012-09-26 | 南京信息工程大学 | 一种大批量二维点数据中坐标快速匹配的方法 |
CN108268493A (zh) * | 2016-12-30 | 2018-07-10 | 中国移动通信集团广东有限公司 | 基于地理位置的最近站点搜索方法及装置 |
-
2019
- 2019-12-27 CN CN201911383336.XA patent/CN111159187A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030009474A1 (en) * | 2001-07-05 | 2003-01-09 | Hyland Kevin J. | Binary search trees and methods for establishing and operating them |
CN102693296A (zh) * | 2012-05-16 | 2012-09-26 | 南京信息工程大学 | 一种大批量二维点数据中坐标快速匹配的方法 |
CN108268493A (zh) * | 2016-12-30 | 2018-07-10 | 中国移动通信集团广东有限公司 | 基于地理位置的最近站点搜索方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112732756A (zh) * | 2020-12-30 | 2021-04-30 | 北京奇艺世纪科技有限公司 | 数据查询方法、装置、设备及存储介质 |
CN112732756B (zh) * | 2020-12-30 | 2023-08-18 | 北京奇艺世纪科技有限公司 | 数据查询方法、装置、设备及存储介质 |
CN113568956A (zh) * | 2021-08-05 | 2021-10-29 | 武汉美之修行信息科技有限公司 | 一种近似产品查询方法、装置及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109284321B (zh) | 数据加载方法、装置、计算设备和计算机可读存储介质 | |
CN106933897B (zh) | 数据查询方法和装置 | |
CN111680489B (zh) | 目标文本的匹配方法和装置、存储介质及电子设备 | |
CN111159187A (zh) | 二维查询方法、装置、终端设备及计算机可读存储介质 | |
TW201837749A (zh) | 基於社交網路的群組查找方法和裝置 | |
CN109460406B (zh) | 一种数据处理方法及装置 | |
CN108154024B (zh) | 一种数据检索方法、装置及电子设备 | |
CN111159563A (zh) | 用户兴趣点信息的确定方法、装置、设备及存储介质 | |
CN114116827B (zh) | 一种用户画像数据的查询系统及方法 | |
CN105659235A (zh) | 网络信息的搜词方法及系统 | |
CN110717050A (zh) | 一种知识图谱数据库的访问方法及装置 | |
CN105843809B (zh) | 数据处理方法和装置 | |
CN111198961A (zh) | 商品搜索方法、装置及服务器 | |
CN111008873B (zh) | 一种用户确定方法、装置、电子设备及存储介质 | |
CN110837499B (zh) | 数据访问处理方法、装置、电子设备和存储介质 | |
US10289710B2 (en) | Method for modifying root node, and modification apparatus | |
CN113411364B (zh) | 资源获取方法、装置及服务器 | |
CN114490651A (zh) | 数据存储方法及装置 | |
CN109992695B (zh) | 一种视频信息查询方法及装置 | |
CN108984780B (zh) | 基于支持重复键值树数据结构管理磁盘数据的方法和装置 | |
CN110647568A (zh) | 一种图数据库数据转化为编程语言数据方法及装置 | |
CN115114276A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN113254483B (zh) | 请求的处理方法和装置、电子设备和存储介质 | |
CN110888870A (zh) | 数据存储表的查询方法、分区服务器及电子设备 | |
CN113377774A (zh) | 数据查询方法、装置和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200515 |
|
RJ01 | Rejection of invention patent application after publication |