在Graph上搜索顶点的最佳和最简单的算法?

Ric*_*ral 4 c algorithm graph breadth-first-search depth-first-search

在为我的Graph实现实现了大多数常见和所需的函数之后,我意识到一些函数(删除顶点,搜索顶点和获取顶点)没有"最佳"实现.

我正在使用带有链接列表的邻接列表来实现我的Graph实现,我正在搜索一个顶点,直到找到我想要的那个顶点.就像我说的,我意识到我没有使用"最佳"实现.我可以有10000个顶点并且需要搜索最后一个顶点,但是该顶点可以链接到第一个顶点,这会大大加快速度.但这只是一个假设的案例,它可能会也可能不会发生.

那么,您推荐哪种算法用于搜索查找?我们的老师主要讨论广度优先和深度优先(和Dikjstra'算法,但这是一个完全不同的主题).在这两者之间,你推荐哪一个?

如果我能够实现这两者,那将是完美的,但我没有时间,我需要拿起一个并实施它,第一阶段的截止日期临近......

我的猜测是,采用深度优先,似乎更容易实现,并看他们的工作方式,这似乎是一个最好的选择.但这实际上取决于输入.

但你们有什么建议?

Kon*_*lph 5

如果你有一个邻接列表,搜索顶点只是意味着遍历该列表.您甚至可以命令列表减少所需的查找操作.

从性能的角度来看,图遍历(例如DFS或BFS)不会改善这一点.