父子关系元素查找方法与流程

文档序号:18899918发布日期:2019-10-18 21:47阅读:1162来源:国知局
父子关系元素查找方法与流程

本发明涉及一种父子关系元素查找方法。



背景技术:

在一个元素集合中,例如对于元素集合{a,b,c},该元素集合中的元素满足f(a)=b,且f(b)=c,我们认为,该元素集合中的每个元素均满足父子关系函数f(x),元素a、b、c满足父子关系。其中,元素a是元素b的父元素,元素b是元素a的子元素,元素b是元素c的父级,元素c是元素b的子级。而且元素a的父元素并未包含在元素集合中,我们称元素a为根,而元素c的子元素并未包含在元素集合中,那么元素c就是子结点。

在实际应用中,经常需要验证一个元素集合中的每个元素是否满足父子关系,现有的方法是对每个元素进行如下判断:验证每个元素的子元素或父元素是否存在于元素集合中,若该元素的父元素或子元素存在于该元素集合中,则该元素满足父子关系。

现有方法对于元素集合中的每一个元素的验证均需要将该元素代入父子关系函数中运算得到其子元素,并将该子元素与元素集合中剩下的元素进行对比以判断剩余元素中是否包含与子元素相等的元素。

具体而言,以元素集合{a,b,c}为例,若想要验证该元素集合中的元素是否满足父子关系函数f(x),则需要经过以下步骤:

验证元素a:验证f(a)是否等于b以及f(a)是否等于b,最多需要循环计算两次,验证元素b:验证f(b)是否等于a以及f(b)是否等于c,最多需要循环计算两次,验证元素c:验证f(c)是否等于a以及f(c)是否等于b,最多需要循环计算两次,经过以上步骤可以判断元素a、元素b和元素c是否满足父子关系函数f(x),验证一个元素个数为3的元素集合,最坏的可能性是进行6次对比查找运算,当元素个数为n时,最坏的可能性是需要进行n(n-1)次对比查找运算,假设元素集合中的元素个数较大,该运算量急剧增长,大大的耗费计算机的计算资源,同时,计算耗时非常长。



技术实现要素:

为解决现有技术的不足,本发明提供了一种可以解决上述问题的父子关系元素查找方法。

为了实现上述目标,本发明采用如下的技术方案:

一种父子关系元素查找方法,用于从一元素集合中查找出满足某一父子关系函数的元素,包含以下步骤:

建立hashmap;

计算元素集合中每一个元素的父元素;

将元素和其对应的父元素存入hashmap;

通过hashmap查找出所有满足父子关系函数的元素。

进一步地,计算元素集合中每一个元素的父元素的具体方法为:

通过父子关系函数计算得到父子关系函数的逆函数作为父子关系逆函数;

将元素代入通过计算得到的父子关系逆函数中求得元素所对应的父元素。

进一步地,将元素和其对应的父元素存入hashmap的具体方法为:

将元素作为key值且将元素对应的父元素作为value值,将元素和父元素组成key-value对存入hashmap。

进一步地,通过hashmap查找出所有满足父子关系函数的元素的具体方法为:

将元素作为key值从hashmap中获取其对应的value值;

将获取到的value值作为新的key值从hashmap中获取其对应的value值。

进一步地,当将获取到的value值作为新的key值从hashmap中能够获取到其对应的value值时,元素的父元素包含在元素集合中。

进一步地,当将获取到的value值作为新的key值从hashmap中无法获取到其对应的value值时,元素的父元素不包含在元素集合中。

进一步地,将通过hashmap查找后判断得出其子元素或父元素存在于元素集合中的元素提取出来组成父子关系元素集合。

进一步地,将通过hashmap查找后判断得出其子元素和父元素均不存在于元素集合中的元素提取出来组成无父子关系元素集合。

本发明的有益之处在于提供的父子关系元素查找方法应用hashmap的key-value映射的特性可以实现快速查找元素集合中满足父子关系的元素。

附图说明

图1是本发明的父子关系元素查找方法的流程图。

具体实施方式

以下结合附图和具体实施例对本发明作具体的介绍。

如图1所示为本发明的一种父子关系元素查找方法的流程图,该父子关系元素查找方法用于从一元素集合中查找出满足某一父子关系函数f(x)的元素,其包含以下步骤:s1:建立hashmap。s2:计算元素集合中每一个元素的父元素。s3:将元素和其对应的父元素存入hashmap。s4:通过hashmap查找出所有满足父子关系函数f(x)的元素。

对于s1:建立hashmap。

首先需要根据需要查找的元素集合中的元素的数量,建立一个能够满足存储需求的hashmap。

对于s2:计算元素集合中每一个元素的父元素。

具体而言,计算元素集合中每一个元素的父元素的具体方法为:通过父子关系函数f(x)计算得到该父子关系函数f(x)的逆函数作为父子关系逆函数f(x)-1。将元素代入通过计算得到的父子关系逆函数f(x)-1中求得的值即为元素所对应的父元素。

对于s3:将元素和其对应的父元素存入hashmap。

具体而言,将元素作为key值且将元素对应的父元素作为value值,将元素和父元素组成key-value对存入hashmap,即通过put(key,value)方法将元素和父元素组成key-value对存入hashmap以用于后续的查找。

对于s4:通过hashmap查找出所有满足父子关系函数f(x)的元素。

具体而言,将需要验证的元素集合中的每一个元素进行以下验证:以元素a为例,将元素a作为key值在hashmap中获取其对应的value,即通过get(x)方法,将元素a代入get(x)以从hashmap中对元素a进行运算查找得到该元素a对应的value值,将获取到的value值作为新的key值再通过get(x)方法从hashmap中获取其对应的value值。假设将获取到的value值作为新的key值通过get(x)方法从hashmap中获取到其对应的value值,表示元素a的父元素存在于元素集合中,即元素a满足父子关系。反之,当将获取到的value值作为新的key值通过get(x)方法从hashmap中无法获取到其对应的value值时,则表示元素a的父元素不存在于元素集合中,可以理解的是,元素a的父元素不存在于元素集合中并不能直接得出元素a不满足父子关系,因为元素a也有可能是根,只有当经过所有的验证步骤后判断得到元素a并不是元素集合中的其他元素的父元素时则表示元素a不满足父子关系,反之,若元素a是元素集合中的其他元素的父元素,则元素a也满足父子关系。

通过本发明的父子关系元素查找方法,假设元素集合包含n个元素,把每个元素代入父子关系逆函数f(x)-1中计算得到父元素,并把这种映射关系存放到hashmap中,则需要运算的步骤为2n,到了查找的时候,每个元素只需要从hashmap中进行两次get(x)方法查找,那么查找次数为2n,总的运算步骤为4n,与现有技术中的最坏可能的运算步骤n(n-1)次相比,本发明的父子关系元素查找方法的运算量的减小非常显著。

可选的是,将通过hashmap查找后判断得出其子元素或父元素存在于元素集合中的元素提取出来组成父子关系元素集合,将通过hashmap查找后判断得出其子元素和父元素均不存在于元素集合中的元素提取出来组成无父子关系元素集合。

以上显示和描述了本发明的基本原理、主要特征和优点。本行业的技术人员应该了解,上述实施例不以任何形式限制本发明,凡采用等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1