поиск DFS по любому графику дает вам дерево (конечно, при условии, что граф подключен).
вы можете выполнить его итерацию и, начиная с каждого узла в качестве возможного корня, вы получите spanningдерево в конце концов таким образом, если есть.сложность будет O (V ^ 2 + VE)
РЕДАКТИРОВАТЬ: это работает, потому что для любого конечного графа, если есть корневой узел формы от узла к узлу b, будет путьот а до б в дереве создает DFS.Итак, если предположить, что существует возможное связующее дерево, есть корень r, который вы можете получить от каждого v в V. При итерации, когда r выбран в качестве корня, существует путь от r к каждому v в V, поэтомубыть путем от r до него в связующем дереве.