根据特定条件创建图表

时间:2017-11-13 16:40:05

标签: algorithm depth-first-search breadth-first-search minimum-spanning-tree

我有一个问题,要求我制作一个图表,使得图中的BFS和DFS树不是最小生成树,并且邻接列表的顺序无关紧要,我知道BFS DFS和MST的属性但我对这个问题感到困惑。我该如何处理这个问题? (不寻找解决方案)

2 个答案:

答案 0 :(得分:1)

想象一下k顶点上的完整图表。对于k > 3DFS树将始终与BFS树不同。对于k > 4,您可以使MSTBFSDFS树不同。您可以通过确保一个顶点需要三个边缘来确定MST的形状与DFS树的不同。您可以选择MST的形状与BFS树不同,确保没有顶点有三个以上的边缘。您可以通过指定权重来选择MST的形状来选择边缘,只选择那些边缘,MST的一部分。

DFS Tree

1-----2----3
           |
           |
     4-----5

BFS Tree

      1
  ____|____
 /   / \   \
2   3   4   5

MST

2
|
1---3---5
|
4

五个顶点上的完整图形有5 * 4/2 = 10个边,其中任何树中只需要四个。

答案 1 :(得分:0)

我的建议是查看从图中查找MST的算法,并考虑为什么它不仅仅是BFS或DFS搜索。

对于任何算法,找到实际测试棘手部分的边缘情况是实现的重要部分。您可以从一个简单的示例开始,尝试添加新边缘或以一种简单的BFS / DFS搜索失败的方式更改输入。

它应该独立于邻接列表顺序的条件是确保您的测试图具有真正的硬结构,而不仅仅是您以一种使其失败的方式人为地向算法提供边缘。