我正在学习数据结构和抽象数据类型,并且我一直陷入一个不断出现的问题。
我不明白计算机科学现在已有50年历史了(或更老,我不确切知道)以及数据结构,ADT和算法如何成为这一切的基础部分,但仍然存在没有任何标准。
我的问题实际上非常具体:我正在尝试在C ++中实现深度优先搜索,其方式可以适用于任何本机(内置)数据类型。我的问题是,我先在哪里看?我知道STL的堆栈类可以用来实现DFS算法,但STL是第一个看的地方吗?我应该从头开始实现DFS,使用堆栈以及我对实现此算法的了解吗?或者,当专业程序员需要进行这种搜索时,他们会找到一个库?
请注意,这个问题并不像我希望的那样具体。
答案 0 :(得分:7)
Boost在这里有一个C ++深度优先搜索实现:
http://www.boost.org/doc/libs/1_42_0/libs/graph/doc/depth_first_search.html
答案 1 :(得分:5)
使用您的知识!您知道STL,并且您知道如何使用堆栈实现DFS,最重要的是,它非常简单,因此您可以自己编写代码。
大多数人都建议Boost。但如果这是你唯一需要Boost的东西,那么最好自己编写DFS。另一方面,您还想学习如何使用已有的东西。