2

我正在学习数据结构和抽象数据类型,但我一直被一个不断出现的问题所困扰。

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

我的问题实际上非常具体:我试图在 C++ 中实现深度优先搜索,其方式可以处理任何本机(内置)数据类型。我的问题是,我首先看哪里?我知道 STL 中的堆栈类可用于实现 DFS 算法,但 STL 是第一个看的地方吗?我应该从头开始实现 DFS,使用堆栈以及我对实现该算法的了解吗?还是专业程序员在需要进行此类搜索时是否有他们求助的库?

请告知,这个问题并不像我希望的那样具体。

4

2 回答 2

7

Boost 在这里有一个 C++ 深度优先搜索实现:

http://www.boost.org/doc/libs/1_42_0/libs/graph/doc/depth_first_search.html

于 2012-09-01T05:28:11.120 回答
5

把你的知识用起来!你知道 STL,你知道如何使用堆栈实现 DFS,最重要的是,它非常简单,所以你可以自己编写代码。

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

于 2012-09-01T07:00:12.413 回答