Каждое дерево является направленным, ациклическим графом (DAG), но существуют DAG, которые не являются деревьями. a) Как мы можем определить, является ли данный DAG деревом? b) Разработать алгоритм для проверки того, является ли данная DAG деревом?Предварительное требование для графов для направленного ациклического графа
ответ
Убедитесь, что имеется ровно
n - 1
края (гдеn
является число вершин).Убедитесь, что существует вершина с нулевым индексом.
Запустите глубину первого поиска из этой вершины и убедитесь, что все вершины достижимы из нее.
Если хотя бы одно из этих условий не выполняется, это не дерево. В противном случае это дерево.
Требуется 2, учитывая, что уже известно, что это DAG? – harold
@harold Да, это избыточно. – kraskevich
Это проблема домашней работы? – uday
Нет У меня экзамен в воскресенье, и мне нужен ответ. –