为了账号安全,请及时绑定邮箱和手机立即绑定

按模式搜索图表

按模式搜索图表

人到中年有点甜 2022-07-14 16:59:49
您能否给出我可以学习如何通过某种模式在图形中搜索的方向。我有一些具有唯一 ID 和类型的单向图,例如 A、B、C。我需要根据模式搜索所有 ID。例如如果节点类型在此方向连接,搜索 ( A, B, ) 应返回所有 ID。C返回可以是 as[1,4,6] [4,6,8]等。当我在寻找某种特定类型的节点时,Bfs 和 dfs 可能会有所帮助,但是如果我有这些节点之间的连接模式,我该如何搜索。我的测试如下所示:Vertex<Integer, String> vertex1 = new Vertex<Integer, String>(1, "A");Vertex<Integer, String> vertex2 = new Vertex<Integer, String>(2, "B");Vertex<Integer, String> vertex3 = new Vertex<Integer, String>(3, "D");Vertex<Integer, String> vertex4 = new Vertex<Integer, String>(4, "A");Vertex<Integer, String> vertex5 = new Vertex<Integer, String>(5, "C");Vertex<Integer, String> vertex6 = new Vertex<Integer, String>(6, "B");Vertex<Integer, String> vertex7 = new Vertex<Integer, String>(7, "E");Vertex<Integer, String> vertex8 = new Vertex<Integer, String>(8, "C");vertex1.setNeighbors(Collections.singletonList(vertex2));vertex2.setNeighbors(Arrays.asList(vertex3, vertex5));vertex3.setNeighbors(Collections.singletonList(vertex2));vertex4.setNeighbors(Arrays.asList(vertex5, vertex6, vertex7));vertex5.setNeighbors(Arrays.asList(vertex2, vertex4, vertex6));// vertex5.setNeighbors(Arrays.asList(vertex2, vertex3, vertex4, vertex6));vertex6.setNeighbors(Arrays.asList(vertex4, vertex5, vertex8));vertex7.setNeighbors(Collections.singletonList(vertex4));vertex8.setNeighbors(Collections.singletonList(vertex6));List<List<String>> expectedAnswers = new ArrayList<List<String>>();List<String> answer = new ArrayList<String>();answer.add("1");answer.add("2");answer.add("5");expectedAnswers.add(answer);answer = new ArrayList<String>();answer.add("4");answer.add("6");answer.add("5");expectedAnswers.add(answer);answer = new ArrayList<String>();answer.add("4");answer.add("6");answer.add("8");expectedAnswers.add(answer);
查看完整描述

1 回答

?
慕后森

TA贡献1802条经验 获得超5个赞

至于你的例子:

  • 使用 BFS 或 DFS 查找所有 A。将找到的任何“A”添加到某个容器 C1。

  • 对于 C1 中的每个元素,检查它是否有“B”个邻居。将找到的任何“AB”路径添加到 C2。

  • 对于 C2 中的每个元素,检查其最后一个节点是否有“C”个邻居。将找到的任何“ABC”路径添加到 C3。

  • 报告 C3 中的所有元素


查看完整回答
反对 回复 2022-07-14
  • 1 回答
  • 0 关注
  • 126 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号