我参加了算法和数据结构课程,我的教师希望我实现几个数据结构(如BST,堆栈等)和算法(如快速搜索,DFS等)。 我想相信我理解基础,但每次我开始计划代码我都有同样的困难:
这是我目前的分配:我的导师要我为有向图实现DFS(深度优先搜索)(使用c ++)。
我的问题是 - 我如何实现图表?我应该使用邻接矩阵吗?或者我应该使用邻接清单?既不是这个也不是?? 所以我问我的导师,他的answare是这样的:“把图形想象成一个黑盒子”...... 比以前更困惑,我发誓到 stackoverflow ,在这里我发布这个问题...... 我不想找人告诉我如何实现DFS(或任何其他算法 - 我也可以谷歌!) - 我只需要有人解释我应该得到什么作为输入,我应该提供什么作为输出? / strong>
我会感激任何评论!谢谢!
答案 0 :(得分:1)
黑匣子的含义只是在您进行DFS之前无法看到节点及其连接方式。你可能只是得到根节点和你的算法必须从那里探索。至于你应该输出什么 - 这取决于任务。您在寻找具体数据吗?如果不是,可能是以哪种顺序访问哪些节点的细节。