在C++中实现深度优先搜索

dva*_*ria 2 c++ depth-first-search

我正在学习数据结构和抽象数据类型,并且我一直陷入一个不断涌现的问题.

我不明白计算机科学现在已有50年历史了(或更老,我不确切知道)以及数据结构,ADT和算法如何成为这一切的基础部分,但仍然没有标准任何一个.

我的问题实际上非常具体:我正在尝试在C++中实现深度优先搜索,其方式可以适用于任何本机(内置)数据类型.我的问题是,我先在哪里看?我知道STL的堆栈类可以用来实现DFS算法,但STL是第一个看的地方吗?我应该从头开始实现DFS,使用堆栈以及我对实现此算法的了解吗?或者,当专业程序员需要进行这种搜索时,他们会找到一个库?

请注意,这个问题并不像我希望的那样具体.

Vin*_*arg 5

把你的知识用到!您知道STL并且您知道如何使用堆栈实现DFS,最重要的是,它非常简单,因此您可以自己编写代码.

大多数人建议Boost.但如果这是你唯一需要Boost的东西,那么最好自己编写DFS.另一方面,您还想学习如何使用已有的东西.

  • +1:虽然我尊重提升社区,因为他们已经完成了对像boost这样的大型依赖项所做的工作,但是它有自己的成本,而且我们作为工程师可以问自己什么是开发软件的最具成本效益的方法.有时它会产生依赖关系,有时它会避免依赖并自己实现它. (2认同)