[发明专利]一种基于迭代的图搜索方法有效
申请号: | 201811220912.4 | 申请日: | 2018-10-19 |
公开(公告)号: | CN109299337B | 公开(公告)日: | 2022-05-13 |
发明(设计)人: | 陈光淙;张少伟;蔡世涌 | 申请(专利权)人: | 南威软件股份有限公司 |
主分类号: | G06F16/901 | 分类号: | G06F16/901;G06F16/903 |
代理公司: | 泉州市潭思专利代理事务所(普通合伙) 35221 | 代理人: | 廖仲禧 |
地址: | 362000 福建省*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 搜索 方法 | ||
1.一种基于迭代的图搜索方法,其特征在于,包括:
将图数据库中的第一节点加入到队列中,所述图数据库中包括网络图中的N个节点,其中,所述第一节点属于所述N个节点中的一个节点,所述N个节点中存在通过连边相连接的至少两个节点,所述N为正整数;所述网络图包括如下类型图中的至少一种:有向网络图、无向网络图、有环网络图、无环网络图;
以所述第一节点作为父节点遍历所述图数据库,从所述图数据库中搜索出第二节点,其中,所述第二节点属于所述N个节点中的一个节点,所述第一节点与所述第二节点之间存在连边,且所述第二节点是没有被标记为已处理的节点;
将所述第二节点加入到所述队列中,并将所述第一节点标记为已处理的节点;
将所述第一节点从所述队列中弹出,判断所述队列中的所有节点是否被弹出,若还存在没有被弹出的节点,将所述队列中还剩余的节点作为父节点重新搜索所述图数据库,并搜索到新的节点之后更新所述队列,直至所述队列中的所有节都被弹出,结束图搜索流程。
2.根据权利要求1所述的一种基于迭代的图搜索方法,其特征在于,所述方法还包括:
将所述第一节点从所述队列中弹出之后,以所述第二节点作为父节点遍历所述图数据库,从所述图数据库中搜索出第三节点和第四节点,其中,所述第三节点和所述第四节点属于所述N个节点中的两个节点,所述第二节点分别与所述第三节点、所述第四节点之间存在连边,且所述第三节点和所述第四节点是没有被标记为已处理的节点;
将所述第三节点和所述第四节点依次加入到所述队列中,并将所述第二节点标记为已处理的节点;
将所述第二节点从所述队列中弹出。
3.根据权利要求1所述的一种基于迭代的图搜索方法,其特征在于,所述以所述第一节点作为父节点遍历所述图数据库,从所述图数据库中搜索出第二节点,包括:
以所述第一节点作为父节点遍历所述图数据库中是否存在相应的至少一个子节点;
若所述图数据库中存在一个当前子节点时,判断所述当前子节点是否被标记为已处理的节点;
若所述当前子节点被标记为已处理的节点,则跳过所述当前子节点不做处理;
若所述当前子节点没有被标记为已处理的节点,则确定所述当前子节点为所述第二节点。
4.根据权利要求1所述的一种基于迭代的图搜索方法,其特征在于,所述将图数据库中的第一节点加入到队列中之前,所述方法还包括:
从图数据库中获取需要用于搜索的根节点,所述根节点属于所述N个节点中的一个节点,且所述根节点为所述网络图的初始节点;
以所述根节点作为父节点遍历所述图数据库,从所述图数据库中搜索出第一节点,其中,所述第一节点属于所述N个节点中的一个节点,所述第一节点与所述根节点之间存在连边,且所述第一节点是没有被标记为已处理的节点;
在搜索出所述第一节点之后,触发执行如下步骤:将图数据库中的第一节点加入到队列中。
5.根据权利要求1至4中任一项所述的一种基于迭代的图搜索方法,其特征在于,所述队列采用先加入先弹出的方式管理所述队列中的节点。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南威软件股份有限公司,未经南威软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811220912.4/1.html,转载请声明来源钻瓜专利网。