关于构建和搜索邻接树的面试问题,但我以前从未与他们合作过,所以我不确定从哪里开始。
我有一个包含以下数据的文件:
2 13556 225 235
225 2212 226
2212 8888 2213
8888 144115 72629 141336 8889 146090 129948 167357
144115 160496 163089 144114 144116
...
格式如下:
<parent node> <child node> [ <child node> [ …] ]
每条边的长度为 1。
然后我需要计算两个节点之间的最短路径(这两个在问题中指定)。然后,我需要以大 O 表示法提供估计的复杂度。
后者我可能会捏造,尽管直到现在我什至从未听说过它,而且在理解如何将搜索功能分解为大 O 方面,维基百科对我没有多大帮助,但我稍后会担心(除非有人有一个很好的链接可以分享)。
我现在关心的是尝试对这些数据进行建模,然后搜索最短路径。就像我说的,我以前从未使用过这种结构,所以我什至不知道从哪里开始。我在这里发现了关于邻接列表的另一个问题,但它似乎并不是我想要的,除非我完全没有抓住重点。在我看来,输入数据需要重新组织以满足该问题中使用的结构,而我正在从文件中读取我的数据,所以我认为我需要遍历每个节点和节点列表确定我是否已经输入了父母,这可能需要很长时间。我也看不到如何使用该结构创建 bfs 搜索。
那里有很多搜索示例,所以我可能会整理出那部分,但是在启动数据模型方面的任何帮助都适合从数据文件加载并适合 bfs 搜索(或者,如果有那里有更好的搜索选项,请教我),会有很大的帮助。