在为我的 Graph 实现实现了大部分常用和需要的功能之后,我意识到有几个功能(删除顶点、搜索顶点和获取顶点)没有“最佳”实现。
我正在为我的 Graph 实现使用带有链接列表的邻接列表,并且我正在一个接一个地搜索一个顶点,直到找到我想要的那个。就像我说的,我意识到我没有使用“最好的”实现。我可以有 10000 个顶点并且需要搜索最后一个顶点,但是那个顶点可以有一个到第一个顶点的链接,这会大大加快速度。但这只是一个假设的情况,它可能会发生也可能不会发生。
那么,您推荐什么算法用于搜索查找?我们的老师主要谈论广度优先和深度优先(还有 Dikjstra 的算法,但那是完全不同的主题)。在这两者之间,你推荐哪一个?
如果我能同时实现这两者就完美了,但我没有时间,我需要拿起一个并在第一阶段截止日期临近时实现它......
我的猜测是,使用深度优先,似乎更容易实现,并且查看它们的工作方式,这似乎是最好的选择。但这实际上取决于输入。
但是你们有什么建议呢?