2015-01-15 2 views
0

Каждое дерево является направленным, ациклическим графом (DAG), но существуют DAG, которые не являются деревьями. a) Как мы можем определить, является ли данный DAG деревом? b) Разработать алгоритм для проверки того, является ли данная DAG деревом?Предварительное требование для графов для направленного ациклического графа

+0

Это проблема домашней работы? – uday

+0

Нет У меня экзамен в воскресенье, и мне нужен ответ. –

ответ

0
  1. Убедитесь, что имеется ровно n - 1 края (где n является число вершин).

  2. Убедитесь, что существует вершина с нулевым индексом.

  3. Запустите глубину первого поиска из этой вершины и убедитесь, что все вершины достижимы из нее.

Если хотя бы одно из этих условий не выполняется, это не дерево. В противном случае это дерево.

+0

Требуется 2, учитывая, что уже известно, что это DAG? – harold

+0

@harold Да, это избыточно. – kraskevich