我有一个有趣的问题想要得到您的帮助:
假设我有一个具有n(n-1)/ 2条边的图(数据结构),这意味着完成的图。
从图形中的某个随机元素进行一次DFS扫描可以得到多少种不同的DFS树?
答案 0 :(得分:2)
您的问题很有趣。我相信您是在谈论具有 n 个顶点和两个顶点之间的 n(n-1)/ 2 个边的完整图形。
如果我们从任何一个顶点开始深度优先搜索(DFS),它将最终精确地访问 n 个顶点。在DFS中,我们会跟踪已访问的顶点,以便一旦访问它们就不会访问它们,因此只要DFS进行,输出选项就会减少。我们可以总结为:
总共有n-3个选项可以选择第三个顶点,因为已经访问了3个顶点。
依此类推。 。
只有一个选项可以选择第n个顶点。
因此,在这种图中我们可以从DFS中获得不同的DFS树:
Total ways = n*(n-1)*(n-2)*(n-3)*....*1
= n! ( n factorial )
答案 1 :(得分:0)
实际上,它不是树,而是给定完整图的节点列表。因此,问题是:图的n个节点有多少个排列?显然,答案是n!。