CN113704294A - 数据处理方法、装置、电子设备和存储介质 - Google Patents
数据处理方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN113704294A CN113704294A CN202110943569.1A CN202110943569A CN113704294A CN 113704294 A CN113704294 A CN 113704294A CN 202110943569 A CN202110943569 A CN 202110943569A CN 113704294 A CN113704294 A CN 113704294A
- Authority
- CN
- China
- Prior art keywords
- node
- path information
- nodes
- query
- queried
- 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
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/24—Querying
- G06F16/245—Query processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开关于节点查询方法、装置、电子设备和存储介质,该方法应用于电子设备,所述电子设备中预设有树形结构,所述树形结构中的任意节点对应的路径信息中存储有所述任意节点的祖先节点的标识;所述方法包括:获取查询指令,其中,所述查询指令用于指示查询待查询节点的子孙节点,所述查询指令中携带所述待查询节点的标识;响应于所述查询指令,在所述树形结构中的节点中,查询对应的路径信息中包含所述待查询节点的标识的节点;输出查询到的节点。应用上述方案,可以提高在树形结构中查询待查询节点的子孙节点的效率。
Description
技术领域
本公开涉及计算机应用领域,尤其涉及数据处理方法、装置、电子设备和存储介质。
背景技术
在树形结构中,可以包含若干个节点,每个节点都可以关联自己的父节点和子节点的标识,从而可以令使用者在已知某个节点的情况下,快速地找到该节点的父节点或者子节点。
相关技术中,由于每个节点都可以关联自己的父节点和子节点的标识,因此,在需要查找任一节点的子孙节点时,则可以基于该任一节点关联的子节点标识查找到该任一节点的子节点,再针对该任意节点的子节点使用同样的方式查找到上述任一节点的子节点的子节点,以此类推,即可通过迭代的方式逐级查询到上述任一节点的子孙节点;同理,在查找祖先节点时,也可以通过逐级查找父节点的方式完成。
但是,在采用上述方案的情况下,假如树形结构的层级较多,就需要进行大量的迭代计算,可能需要消耗大量的系统资源,并需要等待较长的处理时间,影响业务处理效率。
发明内容
有鉴于此,本公开提供了节点查找方法、装置、电子设备和存储介质,以至少解决相关技术中的技术问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提出了一种数据处理方法,应用于电子设备,所述电子设备中预设有树形结构,所述树形结构中的任意节点对应的路径信息中存储有所述任意节点的祖先节点的标识;所述方法包括:
获取查询指令,其中,所述查询指令用于指示查询待查询节点的子孙节点,所述查询指令中携带所述待查询节点的标识;
响应于所述查询指令,在所述树形结构中的节点中,查询对应的路径信息中包含所述待查询节点的标识的节点;
输出查询到的节点。
可选的,所述任意节点对应的路径信息包括路径信息字符串,所述路径信息字符串包括所述任意节点的全部祖先节点的标识、以及分隔各所述祖先节点的标识的首尾的分隔符;
所述在所述树形结构中的节点中,查询对应的路径信息中包含所述待查询节点的标识的节点,并将查询到的节点标记为所述待查询节点的子孙节点,包括:
在所述树形结构中的节点中,查询对应的路径信息字符串中包含目标字符串的节点;其中,所述目标字符串包括所述分隔符、所述待查询节点的标识、所述分隔符。
可选的,所述任意节点对应的路径信息包括路径信息结构体,所述路径信息结构体包括存储有所述任意节点的各祖先节点的标识的子结构;
所述在所述树形结构中的节点中,查询对应的路径信息中包含所述待查询节点的标识的节点,并将查询到的节点标记为所述待查询节点的子孙节点,包括:
在所述树形结构中的节点中,查询对应的路径信息结构体中包含存储有所述待查询节点的标识的子结构的节点。
可选的,所述查询指令用于指示查询待查询节点的第N级子孙节点,所述N为正整数,所述任意节点对应的路径信息的节点标识以所述树形结构的根节点到所述任意节点的父节点的路径顺序存储;
所述在所述树形结构中的节点中,查询对应的路径信息中包含所述待查询节点的标识的节点包括:
在所述树形结构中的节点中,查询对应的路径信息中符合预设条件的节点,所述预设条件为以末尾节点标识起前第N个节点标识为所述待查询节点的标识。
根据本公开实施例的第二方面,提出了一种节点查询方法,应用于电子设备,所述电子设备中预设有树形结构,所述树形结构中的任意节点对应的路径信息中存储有所述任意节点的祖先节点的标识;所述方法包括:
接收查询指令,所述查询指令用于指示查询待查询节点的祖先节点;
响应于所述查询指令,获取所述待查询节点对应的路径信息,并提取所述待查询节点对应的路径信息中存储的节点标识;
在所述树形结构中的节点中,查询与所述节点标识对应的节点;
输出查询到的节点。
根据本公开实施例的第三方面,提出了一种数据处理方法,包括:
自顶向下遍历待处理的树形结构,针对遍历到的每个当前节点,执行下列步骤:
获取当前节点的父节点的标识、以及所述当前节点的父节点对应的路径信息,所述父节点对应的路径信息包括所述父节点的祖先节点的标识;
组合当前节点的父节点标识与所述父节点对应的路径信息,得到组合结果;
将所述当前节点对应的路径信息赋值为所述组合结果。
根据本公开实施例的第四方面,提出一种节点查询装置,应用于电子设备,所述电子设备中预设有树形结构,所述树形结构中的任意节点对应的路径信息中存储有所述任意节点的祖先节点的标识;所述装置包括:
获取模块,被配置为获取查询指令,其中,所述查询指令用于指示查询待查询节点的子孙节点,所述查询指令中携带所述待查询节点的标识;
查询模块,被配置为响应于所述查询指令,在所述树形结构中的节点中,查询对应的路径信息中包含所述待查询节点的标识的节点;
输出模块,被配置为输出查询到的节点。
根据本公开实施例的第五方面,提出一种节点查询装置,应用于电子设备,所述电子设备中预设有树形结构,所述树形结构中的任意节点对应的路径信息中存储有所述任意节点的祖先节点的标识;所述装置包括:
接收模块,被配置为接收查询指令,所述查询指令用于指示查询待查询节点的祖先节点;
提取模块,被配置为响应于所述查询指令,获取所述待查询节点对应的路径信息,并提取所述待查询节点对应的路径信息中存储的节点标识;
查询模块,被配置为在所述树形结构中的节点中,查询与所述节点标识对应的节点;
输出模块,被配置为输出查询到的节点。
根据本公开实施例的第六方面,提出一种数据处理装置,包括:
遍历控制模块,被配置为自顶向下遍历待处理的树形结构,针对遍历到的每个当前节点,调用下列模块:
获取模块,被配置为获取当前节点的父节点的标识,以及所述当前节点的父节点对应的路径信息,所述父节点对应的路径信息包括所述父节点的祖先节点的标识;
组合模块,被配置为组合当前节点的父节点标识与所述父节点对应的路径信息,得到组合结果;
第一赋值模块,被配置为将所述当前节点对应的路径信息赋值为所述组合结果。
根据本公开实施例的第七方面,提出一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如上述第一和第二方面实施例中任一项所述的节点查询方法和/或如上述第三方面实施例中任一项所述的数据处理方法。
根据本公开实施例的第七方面,提出一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如上述第一和第二方面实施例中任一项所述的节点查询方法和/或如上述第三方面实施例中任一项所述的数据处理方法。
根据本公开实施例的第七方面,提出一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述第一和第二方面实施例中任一项所述的节点查询方法和/或如上述第三方面实施例中任一项所述的数据处理方法。
以上技术方案中,由于树形结构中的任意节点对应的路径信息中存储有所述任意节点的祖先节点的标识,因此待查询节点就是查询到的、对应路径信息中包含待查询节点标识的节点的祖先节点;也就是说,查询到的节点就是待查询节点的子孙节点。相对于通过迭代逐层查询的传统方案,上述方案由于无需逐级迭代,因此可以显著提升查询效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书文本一同用于解释原理,并不构成对本公开的不当限定。
图1是本公开示出的一种树形结构的示意图;
图2是根据本公开的实施例示出的一种数据处理方法的流程图;
图3是根据本公开的实施例示出的一种处理后的树形结构的示意图;
图4是根据本公开的实施例示出的一种节点查询方法的流程图;
图5是根据本公开的实施例示出的又一节点查询方法的流程图;
图6是根据本公开的实施例示出的一种节点处理装置的示意框图;
图7是根据本公开的实施例示出的一种节点查询装置的示意框图;
图8是根据本公开的实施例示出的另一节点查询装置的示意框图;
图9是根据本公开的实施例示出的一种电子设备的结构图。
具体实施方式
为了使本技术领域的人员更好地理解本公开一个或多个实施例中的技术方案,下面将结合本公开一个或多个实施例中的附图,对本公开一个或多个实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是一部分实施例,而不是全部的实施例。基于本公开一个或多个实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的系统和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本公开旨在提出一种针对树形结构进行数据处理的技术方案,以及在处理后的树形结构中进行节点查询的技术方案。
树形结构是业内一种常用的存储结构,在树形结构中,可以包含若干个节点,每个节点都可以关联自己的父节点和子节点的标识,从而可以令使用者在已知某个节点的情况下,快速地找到该节点的父节点或者子节点。
请参见图1,图1是本公开示出的一种树形结构的示意图;在该例中,节点ABCDEF共同构成了一棵二叉树;可以理解的是,该图中的二叉树结构仅为一便于描述的示例,业务中也常见多叉树等树形结构,本公开所涉及的方案可以应用于任意的树形结构,因此无需进行进一步限定。
在本公开中,“子节点”一词用于指代一节点直接关联的下一级节点,而不包括间接关联的下级节点;类似的,“父节点”用于指代一节点直接关联的上一级节点,而不包括间接关联的上级节点。可以理解的是,部分相关文献中的“子节点”的含义可能有所不同;以图1中的树形结构为例,某些文献中可能将节点F也称为节点B的“子节点”,将节点E称为节点B的“直接子节点”;本领域技术人员可以根据实际释义进行对照理解,本公开不作进一步赘述。
在某些业务中,不仅需要找到某个节点的子节点,还可能需要找到某个节点的子孙节点(又称后代节点,包括子节点、子节点的子节点等等),或者需要查找到某个节点的祖先节点(父节点,以及父节点的父节点等等)。
相关技术中,人们通常采用基于迭代的查找方式;具体而言,由于每个节点都可以关联自己的父节点和子节点的标识,因此,查找子孙节点的过程可以分解为查找子节点过程的多次迭代;同理,查找祖先节点的过程也可以分解为查找父节点过程的多次迭代。
以图1中所示的树形结构为例,假设某业务需要查找节点B的全部子孙节点,那么就可以将该查询任务分解为“查询节点B的子节点,查询节点D的子节点,查询节点E的子节点,查询节点F的子节点”多个子步骤,并通过迭代的方式进行查找。
但是,在采用上述方案的情况下,假如树形结构的层级较多,上述迭代过程就有可能需要消耗大量的系统资源,并需要等待较长的处理时间,影响业务处理效率。
有鉴于此,本公开提出一种为树形结构中的各个节点,对应生成包含其所有祖先节点的标识的路径信息的技术方案。
在实现时,可以自顶向下遍历整个待处理的树形结构,针对遍历到的每个当前节点,将该当前节点的父节点的标识与该当前节点的父节点的路径信息进行拼接组合,生成该当前节点的路径信息。
在以上技术方案中,一方面,由于被处理的树形结构中,任意节点对应的路径信息,由该节点的父节点的标识以及父节点的路径信息决定;因此,采用自顶向下的遍历顺序进行处理,可以保证全部节点对应的路径信息的正确生成。
另一方面,在上述操作完成后,任意节点对应的路径信息,实质上由该节点的全部祖先节点的标识拼接而成;因此,只要某个节点对应的路径信息中包含有另一节点的标识,就可以确定该节点是另一节点的子孙节点,如果上述某个节点的标识出现在另一节点对应的路径信息中,则上述某个节点是该另一节点的祖先节点;因此,为树形结构添加上述路径信息,有利于设备高效查询任一节点的祖先节点或者子孙节点,无需逐级迭代查询。
下面通过具体实施例并结合具体的应用场景对技术方案进行描述。
请参考图2,图2是本公开一实施例提供的一种数据处理方法的流程图,该方法可以应用于预设有待处理的树形结构的电子设备,包括以下步骤S201、S202、S203、S204。
S201,自顶向下遍历待处理的树形结构,针对遍历到的每个当前节点,执行下列步骤S202、S203、S204。
上述树形结构,指结构满足业内对于“树”这结构的定义的结构;一般认为,树是n个节点的有限集合(n>=0);当n=0时可称为空树,而任意一棵非空树可以满足下列两个条件:
(1)有且仅有一个称为根(Root)的节点;
(2)当n>1时,其余节点可分为m(m>0)个互不相交的有限集合T1、T2、…、Tn,其中每一个集合本身又是一棵树,称为根的子树。
可以理解的是,树形结构可以用于存储,但其功能不仅限于存储;举例而言,对于以树形架构进行管理的分布式计算系统而言,其不仅具有存储功能,还可以具有计算、通信、调度等功能,亦可以应用上述数据处理方法。
可以理解的是,由于树形结构是一种逻辑上的结构,其中的节点的物理存储规律可以有所不同;例如,如图1所示的树形结构中的节点ABCDEF,既可以按顺序存储的方式存放在一块连续的存储区域中,并通过该存储区域的首地址和偏移地址进行访问,也可以将“A”、“B”等标识作为主键,将节点的详细内容存储到关系数据库中,等等;本公开只要求各节点之间的逻辑关系形成树形结构,本领域技术人员可以根据具体需求,自行选择具体的存储方式。
上述自顶向下,指从树形结构的根节点向叶节点的方向。按照此方向进行遍历,对于任意一对父节点和子节点而言,子节点在父节点之后被遍历到。在本公开中,对于更详细的遍历顺序规则,例如兄弟节点(具有相同父节点的若干节点)之间的先后顺序,无需进行进一步限定。
S202,获取当前节点的父节点的标识,以及所述当前节点的父节点对应的路径信息。该父节点对应的路径信息包括父节点的祖先节点的标识。一个示例中,该父节点的祖先节点的标识按照从根节点到父节点的路径排序。以前述图1中节点E为例,其祖先节点包括节点A和节点B,则该父节点对应的路径信息中存储的内容可以形如“A-B”按照从根节点向下的路径顺序排序。
上述节点对应的路径信息,可以是任意形式的、与节点关联存储的信息,其包括的内容由下述数据处理方法中的对应步骤生成。在本公开中,对于遍历到的任意一个节点,可以首先获取该节点的父节点的标识,以及该节点的父节点对应的路径信息;具体而言,树形结构中节点中可以存储有其父节点的标识,也可以存储其父节点的存储地址,因此,既可以从遍历到的节点中直接获取其父节点的标识,也可以通过遍历到的节点中存储的其父节点的存储地址,访问该节点的父节点,并获取到其父节点的标识;之后,由于路径信息与节点之间存在对应关系,因此可以进一步获取到与上述父节点对应的路径信息。
S203,组合当前节点的父节点标识与所述父节点对应的路径信息,得到组合结果。
在本公开中,在获取到遍历到的当前节点的父节点的标识,以及该父节点对应的路径信息后,可以将两者进行组合。可以理解的是,上述组合,可以是字符串意义上的组合,例如将A和B拼接为AB或者BA等等,也可以是将上述两者一同存储在特定的存储结构(例如数组、链表等等)中;本领域技术人员可以自行选择、设计“组合”的具体方式。
在一实施例中,上述路径信息可以是路径信息字符串;在执行上述组合操作时,可以通过字符串拼接的方式,加入预设的分隔符,完成上述路径信息组合的过程;具体而言,在对遍历到的节点的父节点的标识、以及该父节点对应的路径信息进行组合时,插入预设的分隔符(或称间隔符、分段符),用于指示父节点标识的首尾位置,从而使得上述父节点的标识与父节点对应的路径信息之间不产生混淆。可以理解的是,本领域技术人员可以根据具体需求,自行选择成对的圆括号()、中括号[]、花括号{}等符号作为上述分隔符,也可以使用不成对的诸如“,”“;”“.”等字符作为上述分隔符,本公开不作详细限定。
可以理解的是,上述拼接过程中,父节点的标识可以放在父节点对应的路径信息之后,也可以放在父节点对应的路径信息之前,或者采用其他排列组合方式;例如,可以选用“\”为分隔符,并在拼接时放在最后的位置,形成诸如“id1\id2\id3\”的路径形式的路径信息;本领域技术人员可以根据具体需求进行设定。当然可以理解的是,如果上述节点标识按节点路径顺序存储,则在使用该路径信息进行查找时,可以快速定位到最新拼接的节点路径,因此有利于在后续查找的过程中提高查找的效率。
在另一实施例中,上述路径信息可以是路径信息结构体,例如链表、队列、向量等等;其中,该路径信息结构体中可以包括用于存储节点标识的子结构;在需要将当前节点的父节点标识与上述父节点对应的路径信息进行组合时,可组合所述父节点对应的路径信息结构体与存储有所述当前节点的父节点标识的子结构体,得到组合结构体。由于路径信息结构体相对于路径信息字符串而言结构更加明确,因此使用路径信息结构体有利于提高后续查询路径信息时的效率。
举例而言,假设使用JSON格式作为上述路径信息结构体,获取到的父节点对应的路径信息结构体为{“id1”,“id2”,“id3”},父节点的标识为“id4”,则可以将“id4”这一子结构与上述JSON结构进行组合,得到组合结果{“id1”,“id2”,“id3”,“id4”}。
S204,将所述当前节点对应的路径信息赋值为所述组合结果。
在本示例中,在上述组合完成后,即可将遍历到的节点对应的路径信息赋值为上述组合结果,也就是说,上述组合结果可以作为上述遍历到的节点的路径信息与遍历到的节点关联存储;如果遍历到的节点没有对应的路径信息则可以新建对应的路径信息,如果遍历到的节点已经有对应的路径信息,则可以使用上述组合结果对上述遍历到的节点的路径信息进行覆盖或更新。其中,路径信息与节点之间的关联、对应关系可以以指针的方式存储在节点中,也可以存储在独立的对应关系表中,对此本公开不作具体限定。
可以进一步推知,上述父节点的路径信息,是该父节点的父节点的标识与该父节点的父节点对应的路径信息的组合的结果,以此类推,可知遍历到的节点对应的路径信息,即为该节点的全部祖先节点的标识的组合结果;也就是说,经过上述遍历处理过程之后,树形结构中任一节点对应的路径信息中即存储有该任一节点的全部祖先节点的标识的组合结果。
在一实施例中,可以将上述待处理的树形结构中的根节点对应的路径信息赋值为空值。通常可以认为根节点没有父节点,因此,在通过遍历方式对各节点生成对应的路径信息时,可以为根节点设置一个初始值,例如空值。可以理解的是,根节点对应的路径信息也可以设置为不造成歧义的任意字符,例如不与树形结构中节点的标识重复的字符等等,本公开不作进一步限定。合理设置空值,可以进一步保证上述迭代过程的逻辑严密性。
请参见图3,图3是根据本公开的实施例示出的一种处理后的树形结构的示意图;在该例中,上述迭代过程为遍历到的任一节点生成的路径信息中,其父节点的标识会位于其父节点对应的路径信息之后,且使用了短横线“-”作为分隔符;例如,节点F的父节点为节点E,节点E的标识为“E”,对应的路径信息为“A-B”,则节点F的路径信息就是“A-B”和“E”以及间隔符“-”的组合:“A-B-E”;而且,节点A作为根节点,其路径信息可以为空。
可以理解的是,在一实施例中,上述路径信息中的节点的标识可以按层级顺序有序排列,形成类似于存储路径的信息,有利于提高信息的可读性;但在实际应用中,由于在查询过程中仅涉及节点标识的有无,而不涉及节点标识的顺序,因此上述路径信息中节点的标识是否有序排列并不影响上述方案中高效查询子孙节点或祖先节点的可行性。故而本公开并不限定路径信息中节点的标识的顺序。
以上即为本公开针对数据处理方法的全部实施例;基于以上实施例可知,在上述操作完成后,任意节点对应的路径信息,实质上由该节点的全部祖先节点的标识拼接而成;因此,如果某个节点X对应的路径信息中包含有另一节点Y的标识,就可以确定该节点X是节点Y的子孙节点,如果某节点X的标识出现在节点Y对应的路径信息中,则节点X是节点Y的祖先节点;因此,为树形结构添加上述路径信息,有利于设备高效查询任一节点的祖先节点或者子孙节点,无需逐级迭代查询。
本公开还提供了用于快速查找树形结构中待查询节点的子孙节点的节点查找方法的实施例。请参见图4,是根据本公开的实施例示出的一种节点查询方法的流程图;该方法应用于电子设备,其中,该电子设备中预设有树形结构,该树形结构中的任意节点对应的路径信息中存储有所述任意节点的祖先节点的标识;可以包括如下步骤S401,S402,S403。
S401,获取查询指令,其中,所述查询指令用于指示查询待查询节点的子孙节点,所述查询指令中携带所述待查询节点的标识。
在本示例中,可以首先获取查询指令,并从查询指令中得到待查询节点的标识。举例而言,如果需要查询树形结构中节点A的子孙节点,则该步骤中即获取携带上述节点A的标识的查询指令。可以理解的是,上述查询指令,既可以由用户通过人机交互界面输入,也可以从预设的存储区域中读取到。例如,在某服务器中预先配置了定时任务,该定时任务中指示在每天19:00时查询树形结构中节点A的子孙节点,则该定时任务被触发时,即可视为电子设备获取到了对应的查询指令,上述节点A的标识即可通过应用间消息等方式,传递至用于进行节点查询的软件模块中作为待查询节点的标识。本公开不限制获取查询指令的具体方式。
S402,响应于所述查询指令,在所述树形结构中的节点中,查询对应的路径信息中包含所述待查询节点的标识的节点。
由前述数据处理方法可知,树形结构中任意节点对应的路径信息,可以包括该任意节点的祖先节点的标识;所以,可以响应于上述查询指令,采取图4所述的数据查询方式,查询上述经过前述数据处理方法处理的树形结构中的任意一个节点的全部子孙节点。
具体而言,由于任意节点对应的路径信息,可以包括该任意节点的全部祖先节点的标识,所以如果某个节点的路径信息中出现了待查询节点的标识,就意味着待查询节点是该节点的祖先节点,因此该节点必然是待查询节点的子孙节点。也就是说,该步骤中查找到的节点,就是上述查询指令指示电子设备查询的、上述待查询节点的子孙节点。
可以理解的是,为了便于管理查询结果,在查询到对应的路径信息中包含待查询节点的标识的节点之后,电子设备还可以将查询到的节点标记为上述待查询节点的子孙节点。具体而言,上述标记可以是在查询到的节点中添加预设的识别标记,也可以是将查询到的节点复制到预设的存储空间中,构成一个节点集合。本公开不限制上述标记的具体方式。
在一实施例中,上述任意节点对应的路径信息可以是路径信息字符串,该路径信息字符串中可以包括上述任意节点的全部祖先节点的标识、以及分隔各上述祖先节点的标识的分隔符;在此情况下,则可以通过在上述树形结构中的节点中,查询对应的路径信息字符串中包含目标字符串的节点的方式完成上述查询过程,其中,上述目标字符串包括上述分隔符、上述待查询节点的标识、上述分隔符。
在实际应用中,如果上述树形结构按节点逐行存放在SQL数据库中,并将路径信息作为path字段进行对应存储,那么,一个path字段的形式可能如下所示:
/节点标识1/节点标识2/节点标识3/节点标识4/节点标识5/
其中,如果上述path字段中的节点标识是按节点之间的父子关系顺序记录的,则意味着上述节点标识1对应的节点是节点标识2对应节点的父节点,上述节点标识2对应的节点是节点标识3对应节点的父节点,以此类推。
应用上述方法可以使用形如下述SQL语句的查询指令,快速获取到待查询节点的子孙节点:
Select*from node where path like‘*/待查询节点标识/*’
其中,node是上述树形结构按节点逐行存放在SQL数据库中的表名;“/”是分隔符,/待查询节点标识/即为一种包括上述分隔符、上述待查询节点的标识、上述分隔符的目标字符串。
可以理解的是,使用上述目标字符串进行查询操作,相对于仅使用待查询节点的标识进行查询操作,可以进一步减少查询的错误;举例而言,假设在一个树形结构中,一个节点的标识为id22,另一个节点的标识为id223,如果仅使用待查询节点的标识进行查询操作,也即构造如下SQL语句查询指令:
Select*from node where path like‘*id22*’
则在上述查询标识为id22的节点的子孙节点的过程中,如果某节点path字段为:
/id1/id2/id3/id223/id56/
上述字段表明该某节点存在id1、id2、id3、id223、id56几个祖先节点,没有标识为id22的祖先节点,并非id22的节点的子孙节点,但其path会被表达式‘*id22*’匹配成功,从而被误识别为上述标识为id22的节点的子孙节点,产生查询错误。而如果使用上述目标字符串进行查询操作,则构造出的SQL语句查询指令中对应的表达式应为‘*/id22/*’,也就不会误匹配到/id223/,不会造成上述误判。
上述方案中示出的SQL数据库操作指令仅为便于描述的示例,本领域技术人员可以根据具体需求,自行将上述方法迁移到其他数据库环境下,本公开不限定树形结构具体存储的形式。
在另一实施例中,上述路径信息可以是路径信息结构体,例如链表、队列、向量等等;其中,该路径信息结构体中包括用于存储节点标识的子结构;则在查询时,可以在上述树形结构中的节点中,查询对应的路径信息结构体中包含存储有上述待查询节点的标识的子结构的节点。举例而言,假设使用JSON格式作为上述路径信息结构体,待查询节点的标识为“id3”,则假如某节点对应的路径信息结构体为{“id1”,“id2”,“id3”,“id4”},该某节点就可以被查询到,并被标记为待查询节点的子孙节点。可以理解的是,本领域技术人员可以根据具体业务需求选择具体使用的路径信息结构体的种类,本公开对此并不限制。采用该方案,由于相对路径信息字符串而言,路径信息结构体的中各个子结构之间区分更加明确,因此在路径信息结构体中以搜索子结构的方式查询的效率,比在路径信息字符串中以字符串匹配的方式更高,因此上述方案可以提高查询操作的执行效率。
在一实施例中,该查询指令可以用于指示查询待查询节点的第N级子孙节点,其中N为正整数,上述任意节点对应的路径信息的节点标识以上述树形结构的根节点到上述任意节点的父节点的路径顺序存储;则上述电子设备可以在上述树形结构中的节点中,查询对应的路径信息中符合预设条件的节点,上述预设条件为以末尾节点标识起前第N个节点标识为上述待查询节点的标识。
举例而言,请参见图3,假设N为1,也即查询第1级子孙节点(子节点),那么只需判断节点的路径信息的结尾第1位是不是B,就能够判断该节点是不是B的子节点;节点D的路径信息为“A-B”,结尾为B,则节点D是节点B的子节点;节点C的路径信息为“A”,结尾不是B,则节点C不是节点C的子节点。与上例类似的,在N为其他正整数时,亦可快速查询到待查询节点的第N级子孙节点。可见,应用上述方案,可以进一步提高查询第N级子孙节点的效率。
S403,输出查询到的节点。
在本示例中,上述电子设备可以将上述查找到的节点进行输出。具体而言,既可以将上述查找到的节点输出到屏幕、打印机等输出设备,也可以输出到需要使用上述待查询节点的子孙节点的应用程序中,还可以输出到电子邮件或者网络硬盘等等。将上述节点进行输出的具体方式可以根据具体的业务需求选定,本公开无需限定具体的输出方式。
基于上述实施例可知,应用上述技术方案,由于树形结构中的任意节点对应的路径信息中存储有所述任意节点的祖先节点的标识,因此待查询节点就是查询到的、对应路径信息中包含待查询节点标识的节点的祖先节点;也就是说,查询到的节点就是待查询节点的子孙节点。相对于通过迭代逐层查询的传统方案,上述方案由于无需逐级迭代,因此可以显著提升查询效率。
本公开还提供了用于快速查找树形结构中待查询节点的祖先节点的节点查找方法的实施例。请参见图5,图5是根据本公开的实施例示出的又一数据查询方法的流程图;该方法应用于电子设备,该电子设备中预设有树形结构,上述树形结构中的任意节点对应的路径信息中存储有上述任意节点的祖先节点的标识;该方法可以包括如下步骤S501,S502,S503,S504。
S501,接收查询指令,所述查询指令用于指示查询待查询节点的祖先节点。
在本示例中,上述电子设备可以接收用于指示查询待查询节点的祖先节点的查询指令。可以理解的是,上述指令既可以通过人机交互界面由用户输入,也可以从存储设备中读取。例如,在某服务器中预先配置了定时任务,该定时任务中指示在每天19:00时查询树形结构中节点A的祖先节点,则该定时任务被触发时,上述查询树形结构中节点A的祖先节点的指令即可通过应用间消息等方式,被用于进行节点查询的软件模块接收到,从而触发后续步骤。本公开不限制接收查询指令的具体方式。
S502,响应于所述查询指令,获取所述待查询节点对应的路径信息,并提取所述待查询节点对应的路径信息中存储的节点标识。
在本示例中,上述电子设备可以响应于上述查询指令,获取上述待查询节点对应的路径信息;如果上述查询指令中携带有上述待查询节点对应的路径信息,则上述电子设备可以通过解析上述查询指令获得上述路径信息,若上述查询指令中未携带上述待查询节点对应的路径信息,而是携带了上述待查询节点的标识,则上述电子设备可以根据上述待查询节点的标识访问到上述待查询节点,再根据待查询节点与路径信息之间的对应关系获取到与待查询节点对应的路径信息。
在获取到待查询节点对应的路径信息后,上述电子设备可以从上述待查询节点对应的路径信息中提取到节点的标识,也即该待查询节点的祖先节点的标识。假设上述待查询节点对应的路径信息是字符串,则可以进行字符串拆分处理,得到一个或者多个节点标识。
在一实施例中,上述路径信息可以是路径信息字符串,其中不仅包括各祖先节点的标识,还可以包括用于分隔各祖先节点的标识的分隔符;在此情况下,在从路径信息字符串中提取存储的节点标识时,可以基于预设的分隔符,将待查询节点对应的路径信息进行拆分处理,得到一个或者多个节点标识;以图3中的节点E为例,其对应的路径信息为“A-B”,那么基于预设的分隔符“-”,就可以将路径信息拆分处理,得到两个节点标识“A”和“B”。合理选取分隔符,可以更加高效地切分字符串,并减少出现错误的可能。
在另一实施例中,上述路径信息可以是路径信息结构体,上述路径信息结构体包括存储有上述任意节点的各祖先节点的标识的子结构;则在提取上述待查询节点对应的路径信息中的节点标识时,可以从上述待查询节点对应的路径信息结构体中的各子结构内,提取节点标识。举例而言,假设使用JSON格式作为上述路径信息结构体,待查询节点对应的路径信息结构体为{“id1”,“id2”,“id3”,“id4”},则可以该路径信息结构体的各个子结构,即为JSON格式中被逗号分隔出的各个小节,从中可以得到id1,id2,id3,id4共四个节点标识。可以理解的是,本领域技术人员可以根据具体业务需求选择具体使用的路径信息结构体的种类,本公开对此并不限制。采用该方案,由于相对路径信息字符串而言,路径信息结构体的中各个子结构之间区分更加明确,因此在路径信息结构体中获取各个节点标识的效率,比在路径信息字符串中以字符串拆分的方式更高,因此上述方案可以提高操作的执行效率。
S503,在所述树形结构中的节点中,查询与所述节点标识对应的节点。
在本示例中,上述电子设备可以根据前述提取出的节点标识,查找到对应的节点;由于上述待查询节点对应的路径信息中存储的是该待查询节点的祖先节点的标识,因此基于提取出的节点标识查找到对应的节点即为该待查询节点的祖先节点。例如,前述待查询节点对应的路径信息中提取出了id1,id2,id3,id4共四个节点标识,则上述树形结构中分别对应id1,id2,id3,id4四个节点标识的四个节点即为该待查询节点的祖先节点。
可以理解的是,为了为了便于管理查询结果,可以将上述查找到的节点进行标记,例如,在查询到的节点中添加预设的识别标记,或者将查询到的节点复制到预设的存储空间中,构成一个节点集合,等等。本公开不限制上述标记的具体方式。
在一实施例中,上述查询指令用于指示查询待查询节点的第N级祖先节点,上述N为正整数,上述任意节点对应的路径信息的节点标识以上述树形结构的根节点到上述任意节点的父节点的路径顺序存储;提取上述待查询节点对应的路径信息中存储的节点标识时,可以提取上述待查询节点对应的路径信息中存储的以末尾节点标识起前第N个节点标识。
应用该方案,由于上述任意节点对应的路径信息的节点标识以上述树形结构的根节点到上述任意节点的父节点的路径顺序存储,因此上述待查询节点对应的路径信息中存储的以末尾节点标识起前第N个节点标识就是待查询节点的第N级祖先节点的节点标识,因此可以利用该提取出的节点标识快速定位到上述查询指令指示的第N级祖先节点,提高查询效率。
S504,输出查询到的节点。
如前所述,本方案的目的是查找待查询节点的祖先节点;上述电子设备可以将上述查找到的节点进行输出;具体而言,既可以将上述查找到的节点输出到屏幕、打印机等输出设备,也可以输出到需要使用上述待查询节点的子孙节点的应用程序中,还可以输出到电子邮件或者网络硬盘等等。将上述节点进行输出的具体方式可以根据具体的业务需求选定,本公开无需限定具体的输出方式。
在本公开中,经过前述数据处理方法处理的树形结构中的任意节点对应的路径信息,可以包括该任意节点的全部祖先节点的标识;所以,可以采取上述数据查询方式,查询任意节点的全部祖先节点。相较于现有技术中树形结构的节点中只保留父节点的标识,只能通过迭代方式逐层向上查找祖先节点的技术方案,上述方法可以直接获取到待查询节点的全部祖先节点的标识,从而快速查询到待查询节点的祖先节点。
上述内容即为本公开所述的数据处理方法以及节点查询方法的全部实施例。本公开还提供了对应的装置实施例如下:
图6是根据本公开的实施例示出的一种数据处理装置的示意框图;该装置可以包括如下模块:
遍历控制模块601,被配置为自顶向下遍历待处理的树形结构,针对遍历到的每个当前节点,调用下列模块:
获取模块602,被配置为获取当前节点的父节点的标识,以及所述当前节点的父节点对应的路径信息,所述父节点对应的路径信息包括所述父节点的祖先节点的标识;
组合模块603,被配置为组合当前节点的父节点标识与所述父节点对应的路径信息,得到组合结果;
第一赋值模块604,被配置为将所述当前节点对应的路径信息赋值为所述组合结果。
在一实施例中,上述装置还可以包括第二赋值模块,该模块可以被配置为将上述待处理的树形结构中的根节点对应的路径信息赋值为空值。一般认为根节点没有父节点,因此,在通过迭代方式对各节点生成对应的路径信息时,可以为根节点设置一个初始值,例如空值。可以理解的是,根节点对应的路径信息也可以设置为不造成歧义的任意字符,本公开不作进一步限定。合理设置空值,可以进一步保证上述迭代过程的逻辑严密性。
在一实施例中,上述路径信息可以包括路径信息字符串,上述组合模块603可以进一步被配置为,可以通过字符串拼接的方式,加入预设的分隔符,完成上述对遍历到的节点的父节点的标识,以及该父节点对应的路径信息进行拼接的过程;具体而言,可以在遍历到的节点的父节点的标识,以及该父节点对应的路径信息组合时插入预设的分隔符(或称间隔符、分段符),用于指示父节点标识的首尾位置,从而使得上述父节点的标识与父节点对应的路径信息之间不产生混淆。可以理解的是,本领域技术人员可以根据具体需求,自行选择成对的圆括号、中括号、花括号、引号等符号作为上述分隔符,也可以使用不成对的诸如“,”“;”“.”等字符作为上述分隔符,本公开不作详细限定。
可以理解的是,上述拼接过程中,父节点的标识可以放在父节点对应的路径信息之后,也可以放在父节点对应的路径信息之前,或者采用其他排列组合方式;例如,可以选用“\”为分隔符,并在拼接时放在最后的位置,形成诸如“id1\id2\id3\”的路径形式的路径信息;本领域技术人员可以根据具体需求进行设定。
在另一实施例中,上述路径信息可以是路径信息结构体,例如链表、队列、向量等等;其中,该路径信息结构体中包括用于存储节点标识的子结构;在需要将当前节点的父节点标识与上述父节点对应的路径信息进行组合时,即可组合所述父节点对应的路径信息结构体与存储有所述当前节点的父节点标识的子结构体,得到组合结构体。由于路径信息结构体相对于路径信息字符串而言结构更加明确,因此使用路径信息结构体有利于提高后续查询路径信息时的效率。
图7是根据本公开的实施例示出的一种数据查询装置的示意框图;该装置应用于电子设备,上述电子设备中预设有树形结构,上述树形结构中的任意节点对应的路径信息中存储有上述任意节点的祖先节点的标识;该装置可以包括如下模块:
获取模块701,被配置为获取查询指令,其中,所述查询指令用于指示查询待查询节点的子孙节点,所述查询指令中携带所述待查询节点的标识;
查询模块702,被配置为响应于所述查询指令,在所述树形结构中的节点中,查询对应的路径信息中包含所述待查询节点的标识的节点;
输出模块703,被配置为输出查询到的节点。
在一实施例中,上述任意节点对应的路径信息可以是路径信息字符串,该路径信息字符串中可以包括上述任意节点的全部祖先节点的标识、以及分隔各上述祖先节点的标识的分隔符;在此情况下,上述查询模块702可以被进一步配置为,在上述树形结构中的节点中,查询对应的路径信息字符串中包含目标字符串的节点的方式,从而完成上述查询过程,其中,上述目标字符串可以包括上述分隔符、上述待查询节点的标识、上述分隔符。
在另一实施例中,上述路径信息可以是路径信息结构体,例如链表、队列、向量等等;其中,该路径信息结构体中包括用于存储节点标识的子结构;则上述查询模块702可以被进一步配置为,在查询时,在上述树形结构中的节点中,查询对应的路径信息结构体中包含存储有上述待查询节点的标识的子结构的节点。举例而言,假设使用JSON格式作为上述路径信息结构体,待查询节点的标识为“id3”,则假如某节点对应的路径信息结构体为{“id1”,“id2”,“id3”,“id4”},该某节点即可以被查询到,并被标记为待查询节点的子孙节点。可以理解的是,本领域技术人员可以根据具体业务需求选择具体使用的路径信息结构体的种类,本公开对此并不限制。采用该方案,由于相对路径信息字符串而言,路径信息结构体的中各个子结构之间区分更加明确,因此在路径信息结构体中以搜索子结构的方式查询的效率,比在路径信息字符串中以字符串匹配的方式更高,因此上述方案可以提高查询操作的执行效率。
在一实施例中,该查询指令可以用于指示查询待查询节点的第N级子孙节点,其中N为正整数,上述任意节点对应的路径信息的节点标识以上述树形结构的根节点到上述任意节点的父节点的路径顺序存储;则上述电子设备可以在上述树形结构中的节点中,查询对应的路径信息中符合预设条件的节点,上述预设条件为以末尾节点标识起前第N个节点标识为上述待查询节点的标识。应用上述方案,可以进一步提高查询第N级子孙节点的效率。
图8是根据本公开的实施例示出的另一数据查询装置的示意框图;该装置应用于电子设备,上述电子设备中预设有树形结构,上述树形结构中的任意节点对应的路径信息中存储有上述任意节点的祖先节点的标识;该装置可以包括如下模块:
接收模块801,被配置为接收查询指令,所述查询指令用于指示查询待查询节点的祖先节点;
提取模块802,被配置为响应于所述查询指令,获取所述待查询节点对应的路径信息,并提取所述待查询节点对应的路径信息中存储的标识;
查询模块803,被配置为在所述树形结构中的节点中,查询与所述节点标识对应的节点;
输出模块804,被配置为输出查询到的节点。
在一实施例中,上述路径信息可以是路径信息字符串,其中不仅包括各祖先节点的标识,还可以包括用于指示各祖先节点的标识的首尾的分隔符;在此情况下,上述提取模块802可以被配置为,基于所述分隔符,将所述待查询节点对应的路径信息字符串进行字符串拆分处理,得到节点标识;以图3中的节点E为例,其对应的路径信息为“A-B”,那么基于预设的分隔符“-”,就可以将路径信息拆分处理,得到两个节点标识“A”和“B”。合理选取分隔符,可以更加高效地切分字符串,并减少出现错误的可能。
在另一实施例中,上述路径信息可以是路径信息结构体,上述路径信息结构体包括存储有上述任意节点的各祖先节点的标识的子结构;上述提取模块802可以进一步被配置为从上述待查询节点对应的路径信息结构体中的各子结构内,提取节点标识。举例而言,假设使用JSON格式作为上述路径信息结构体,待查询节点对应的路径信息结构体为{“id1”,“id2”,“id3”,“id4”},则可以该路径信息结构体的各个子结构,即为JSON格式中被逗号分隔出的各个小节,从中可以得到id1,id2,id3,id4共四个节点标识。可以理解的是,本领域技术人员可以根据具体业务需求选择具体使用的路径信息结构体的种类,本公开对此并不限制。采用该方案,由于相对路径信息字符串而言,路径信息结构体的中各个子结构之间区分更加明确,因此在路径信息结构体中获取各个节点标识的效率,比在路径信息字符串中以字符串拆分的方式更高,因此上述方案可以提高操作的执行效率。
在一实施例中,上述查询指令用于指示查询待查询节点的第N级祖先节点,上述N为正整数,上述任意节点对应的路径信息的节点标识以上述树形结构的根节点到上述任意节点的父节点的路径顺序存储;上述提取模块803进一步被配置为:提取上述待查询节点对应的路径信息中存储的以末尾节点标识起前第N个节点标识。
应用该方案,由于上述任意节点对应的路径信息的节点标识以上述树形结构的根节点到上述任意节点的父节点的路径顺序存储,因此上述待查询节点对应的路径信息中存储的以末尾节点标识起前第N个节点标识就是待查询节点的第N级祖先节点的节点标识,因此可以利用该提取出的节点标识快速定位到上述查询指令指示的第N级祖先节点,提高查询效率。
关于上述实施例中的装置,其中各模块的具体实现方式,已经在描述对应方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本公开的实施例还提出一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如上述任一实施例所述的数据处理方法和/或节点查询方法。
本公开的实施例还提出一种计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述任一实施例所述的数据处理方法和/或节点查询方法。
本公开的实施例还提出一种一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所述的数据查询方法和/或节点查询方法。
图9是根据本公开的实施例示出的一种电子设备的示意框图。上述用于数据处理的电子设备,以及用于数据查询的电子设备,均可以采用图9所示的架构;该示例中,电子设备900可以包括以下一个或多个组件:处理组件902,存储器904,电源组件906,多媒体组件908,音频组件910,输入/输出(I/O)的接口912,传感器组件914,以及通信组件918。
处理组件902通常控制电子设备900的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件902可以包括一个或多个处理器920来执行指令,以完成上述数据处理方法和/或节点查询方法的全部或部分步骤。此外,处理组件902可以包括一个或多个模块,便于处理组件902和其他组件之间的交互。例如,处理组件902可以包括多媒体模块,以方便多媒体组件908和处理组件902之间的交互。
存储器904被配置为存储各种类型的数据以支持在电子设备900的操作。这些数据的示例包括用于在电子设备900上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器904可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件906为电子设备900的各种组件提供电力。电源组件906可以包括电源管理系统,一个或多个电源,及其他与为电子设备900生成、管理和分配电力相关联的组件。
多媒体组件908包括在电子设备900和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件908包括一个前置摄像头和/或后置摄像头。当电子设备900处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的或具有焦距和光学变焦能力的光学透镜系统。
音频组件910被配置为输出和/或输入音频信号。例如,音频组件910包括一个麦克风(MIC),当电子设备900处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器904或经由通信组件918发送。在一些实施例中,音频组件910还包括一个扬声器,用于输出音频信号。
I/O接口912为处理组件902和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件914包括一个或多个传感器,用于为电子设备900提供各个方面的状态评估。例如,传感器组件914可以检测到电子设备900的打开/关闭状态,组件的相对定位,例如所述组件为电子设备900的显示器和小键盘,传感器组件914还可以检测电子设备900或电子设备900一个组件的位置改变,用户与电子设备900接触的存在或不存在,电子设备900方位或加速/减速和电子设备900的温度变化。传感器组件914可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件914还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件914还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件918被配置为便于电子设备900和其他设备之间有线或无线方式的通信。电子设备900可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、4G或9G),或它们的组合。在一个示例性实施例中,通信组件918经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件918还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在本公开一实施例中,电子设备900可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述数据处理方法和/或节点查询方法。
在本公开一实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器904,上述指令可由电子设备900的处理器920执行以完成上述数据处理方法和/或节点查询。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
需要说明的是,在本公开中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本公开实施例所提供的方法和装置进行了详细介绍,本文中应用了具体个例对本公开的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本公开的方法及其核心思想;同时,对于本领域的一般技术人员,依据本公开的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本公开的限制。
Claims (10)
1.一种节点查询方法,应用于电子设备,其特征在于,所述电子设备中预设有树形结构,所述树形结构中的任意节点对应的路径信息中存储有所述任意节点的祖先节点的标识;所述方法包括:
获取查询指令,其中,所述查询指令用于指示查询待查询节点的子孙节点,所述查询指令中携带所述待查询节点的标识;
响应于所述查询指令,在所述树形结构中的节点中,查询对应的路径信息中包含所述待查询节点的标识的节点;
输出查询到的节点。
2.根据权利要求1所述的方法,其特征在于,所述任意节点对应的路径信息包括路径信息字符串,所述路径信息字符串包括所述任意节点的全部祖先节点的标识、以及分隔各所述祖先节点的标识的分隔符;
所述在所述树形结构中的节点中,查询对应的路径信息中包含所述待查询节点的标识的节点,包括:
在所述树形结构中的节点中,查询对应的路径信息字符串中包含目标字符串的节点;其中,所述目标字符串包括所述分隔符、所述待查询节点的标识、所述分隔符。
3.一种节点查询方法,应用于电子设备,其特征在于,所述电子设备中预设有树形结构,所述树形结构中的任意节点对应的路径信息中存储有所述任意节点的祖先节点的标识;所述方法包括:
接收查询指令,所述查询指令用于指示查询待查询节点的祖先节点;
响应于所述查询指令,获取所述待查询节点对应的路径信息,并提取所述待查询节点对应的路径信息中存储的节点标识;
在所述树形结构中的节点中,查询与所述节点标识对应的节点;
输出查询到的节点。
4.一种数据处理方法,其特征在于,包括:
自顶向下遍历待处理的树形结构,针对遍历到的每个当前节点,执行下列步骤:
获取当前节点的父节点的标识、以及所述当前节点的父节点对应的路径信息,所述父节点对应的路径信息包括所述父节点的祖先节点的标识;
组合当前节点的父节点标识与所述父节点对应的路径信息,得到组合结果;
将所述当前节点对应的路径信息赋值为所述组合结果。
5.一种节点查询装置,应用于电子设备,其特征在于,所述电子设备中预设有树形结构,所述树形结构中的任意节点对应的路径信息中存储有所述任意节点的祖先节点的标识;所述装置包括:
获取模块,被配置为获取查询指令,其中,所述查询指令用于指示查询待查询节点的子孙节点,所述查询指令中携带所述待查询节点的标识;
查询模块,被配置为响应于所述查询指令,在所述树形结构中的节点中,查询对应的路径信息中包含所述待查询节点的标识的节点;
输出模块,被配置为输出查询到的节点。
6.一种节点查询装置,应用于电子设备,其特征在于,所述电子设备中预设有树形结构,所述树形结构中的任意节点对应的路径信息中存储有所述任意节点的祖先节点的标识;所述装置包括:
接收模块,被配置为接收查询指令,所述查询指令用于指示查询待查询节点的祖先节点;
提取模块,被配置为响应于所述查询指令,获取所述待查询节点对应的路径信息,并提取所述待查询节点对应的路径信息中存储的节点标识;
查询模块,被配置为在所述树形结构中的节点中,查询与所述节点标识对应的节点;
输出模块,被配置为输出查询到的节点。
7.一种数据处理装置,其特征在于,包括:
遍历控制模块,被配置为自顶向下遍历待处理的树形结构,针对遍历到的每个当前节点,调用下列模块:
获取模块,被配置为获取当前节点的父节点的标识、以及所述当前节点的父节点对应的路径信息,所述父节点对应的路径信息包括所述父节点的祖先节点的标识;
组合模块,被配置为组合当前节点的父节点标识与所述父节点对应的路径信息,得到组合结果;
第一赋值模块,被配置将所述当前节点对应的路径信息赋值为所述组合结果。
8.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1~3中任一项所述的节点查询方法和/或如权利要求4所述的数据处理方法。
9.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1~3中任一项所述的节点查询方法和/或如权利要求4所述的数据处理方法。
10.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序被处理器执行时实现如权利要求1~3中任一项所述的节点查询方法和/或如权利要求4所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110943569.1A CN113704294A (zh) | 2021-08-17 | 2021-08-17 | 数据处理方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110943569.1A CN113704294A (zh) | 2021-08-17 | 2021-08-17 | 数据处理方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113704294A true CN113704294A (zh) | 2021-11-26 |
Family
ID=78653053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110943569.1A Pending CN113704294A (zh) | 2021-08-17 | 2021-08-17 | 数据处理方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113704294A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114491164A (zh) * | 2022-01-17 | 2022-05-13 | 广州市玄武无线科技股份有限公司 | 一种树形数据处理方法及系统 |
CN114491172A (zh) * | 2022-04-07 | 2022-05-13 | 深圳竹云科技股份有限公司 | 树形结构节点的快速检索方法、装置、设备及存储介质 |
CN116108235A (zh) * | 2023-02-20 | 2023-05-12 | 上海安博通信息科技有限公司 | 一种树形结构的路径获取方法、装置以及处理设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101655871A (zh) * | 2009-09-25 | 2010-02-24 | 金蝶软件(中国)有限公司 | 一种数据存储、查询方法和装置 |
EP3147867A1 (en) * | 2015-09-24 | 2017-03-29 | Samsung Electronics Co., Ltd. | Apparatus for and method of traversing tree |
CN107679049A (zh) * | 2016-08-02 | 2018-02-09 | 北京京东尚科信息技术有限公司 | 获取树形结构数据两节点间路径的方法、装置及系统 |
CN108228171A (zh) * | 2017-12-29 | 2018-06-29 | 武汉益模科技股份有限公司 | 一种基于树形结构的项目树查询和显示方法 |
CN112632065A (zh) * | 2020-12-18 | 2021-04-09 | 北京锐安科技有限公司 | 一种数据存储方法、装置、存储介质及服务器 |
-
2021
- 2021-08-17 CN CN202110943569.1A patent/CN113704294A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101655871A (zh) * | 2009-09-25 | 2010-02-24 | 金蝶软件(中国)有限公司 | 一种数据存储、查询方法和装置 |
EP3147867A1 (en) * | 2015-09-24 | 2017-03-29 | Samsung Electronics Co., Ltd. | Apparatus for and method of traversing tree |
CN107679049A (zh) * | 2016-08-02 | 2018-02-09 | 北京京东尚科信息技术有限公司 | 获取树形结构数据两节点间路径的方法、装置及系统 |
CN108228171A (zh) * | 2017-12-29 | 2018-06-29 | 武汉益模科技股份有限公司 | 一种基于树形结构的项目树查询和显示方法 |
CN112632065A (zh) * | 2020-12-18 | 2021-04-09 | 北京锐安科技有限公司 | 一种数据存储方法、装置、存储介质及服务器 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114491164A (zh) * | 2022-01-17 | 2022-05-13 | 广州市玄武无线科技股份有限公司 | 一种树形数据处理方法及系统 |
CN114491164B (zh) * | 2022-01-17 | 2022-12-09 | 广州市玄武无线科技股份有限公司 | 一种树形数据处理方法及系统 |
CN114491172A (zh) * | 2022-04-07 | 2022-05-13 | 深圳竹云科技股份有限公司 | 树形结构节点的快速检索方法、装置、设备及存储介质 |
CN116108235A (zh) * | 2023-02-20 | 2023-05-12 | 上海安博通信息科技有限公司 | 一种树形结构的路径获取方法、装置以及处理设备 |
CN116108235B (zh) * | 2023-02-20 | 2023-11-10 | 上海安博通信息科技有限公司 | 一种树形结构的路径获取方法、装置以及处理设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113704294A (zh) | 数据处理方法、装置、电子设备和存储介质 | |
CN109558479B (zh) | 一种规则匹配方法、装置、设备及存储介质 | |
TWI736535B (zh) | 資訊輸入方法、裝置和智慧終端機 | |
CN109104490A (zh) | 业务标识管理方法、装置、电子设备及存储介质 | |
WO2018072634A1 (zh) | 应用程序处理方法和装置 | |
US9485306B2 (en) | Methods, apparatuses, and computer program products for facilitating a data interchange protocol | |
CN107103011B (zh) | 终端数据搜索的实现方法和装置 | |
US20190327105A1 (en) | Method and apparatus for pushing information | |
CN110555015A (zh) | 数据库实体管理方法、装置、电子设备及存储介质 | |
CN110807028B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
CN113518026A (zh) | 消息处理方法、装置和电子设备 | |
CN108829753A (zh) | 一种信息处理方法及装置 | |
CN113179204A (zh) | 撤回消息的方法、装置及电子设备 | |
US20160092455A1 (en) | Building queries directed to objects hosted on clouds | |
CN114138817A (zh) | 基于关系型数据库的数据查询方法、设备、介质及产品 | |
CN111522626B (zh) | 一种虚拟机列表生成方法、装置及电子设备 | |
US9684688B2 (en) | System and methods for matching identifiable patterns and enabling associated actions | |
CN110865827B (zh) | 数据更新方法、设备及系统 | |
WO2023082817A1 (zh) | 应用程序推荐方法 | |
CN111078773A (zh) | 一种数据处理方法及装置 | |
CN108196921B (zh) | 单据开发方法、装置、计算机设备和存储介质 | |
CN107357836B (zh) | 一种vnf包以及其引用的镜像文件删除方法和设备 | |
CN115756683A (zh) | 一种画面展示方法、装置、存储介质及电子设备 | |
CN112764603B (zh) | 消息显示方法、装置和电子设备 | |
CN110471538B (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 |