c++ - 数据结构实现代码理解

标签 c++ algorithm data-structures

我正在上一门算法和数据结构类(class),我的老师要我实现几个数据结构(例如 BST、堆栈等)和算法(例如快速搜索、DFS 等)。 我想相信我了解基础知识,但每次我开始规划代码时,我都会遇到同样的困难:

这是我当前的作业:我的导师要我为有向图实现 DFS(深度优先搜索)(使用 C++)。

我的问题是 - 我应该如何实现图表?我应该使用邻接矩阵吗?还是应该使用邻接表?既不是这个也不是那个?? 所以我问了我的老师,他的回答是这样的:“把图表想象成一个黑盒子”...... 比以前更困惑,我冲向 stackoverflow,在这里我发布了这个问题...... 我不想找人告诉我如何实现 DFS(或任何其他算法 - 我也可以谷歌!)- 我只需要有人解释我应该得到什么作为输入,我应该提供什么作为输出?

我将不胜感激任何评论!谢谢!

最佳答案

他所说的黑匣子 的意思只是您在执行 DFS 之前看不到节点以及它们如何连接。您可能只会获得根节点,而您的算法必须从那里进行探索。至于你应该输出什么——这取决于任务。您在寻找具体数据吗?如果不是,可能是按哪个顺序访问了哪些节点的详细信息。

关于c++ - 数据结构实现代码理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15646211/

相关文章:

c++ - 如果输入是 EOF, "std::cin >> value"是否返回零?

c++ - 在 Qt 上,如何在运行时更改工具栏中某个 Action 的图标?

r - 按组计算的累计最小值和最大值

c++ - 运行 boost::asio 套接字示例时我传递给客户端的参数是什么

c++ - 优化析构函数的大小

c# - 在二维坐标系中查找分隔线

algorithm - 在图中查找长顶点不相交的循环

c - 扩展哈希表而不重新哈希?

c# - 多个线程从 Lookup<TKey, TElement> 中读取是否安全?

c++ - 创建 std::vector 减去一个元素的拷贝的最快方法