Я хочу проверить, является ли мой unidirected graph деревом. Дерево - это ациклический и связанный граф. У меня есть функция, которая проверяет, подключен ли граф. Поэтому достаточно быть деревом, если граф связан и | E | = | V | -1?Проверьте, не является ли однонаправленный граф деревом
ответ
Вы правы, E = V - 1
достаточно, чтобы проверить, что ваш график является деревом.
Логика в том, что каждое дерево начинается с только основной ноты (V=1
, E=0
, так E=V-1
), а оттуда, в любое время мы добавим один узел (V=V+1
), мы должны добавить ровно одно ребро (E=E+1
). Это приводит к тому, что уравнение E=V-1
остается верным для всех деревьев.
Цикл возникает, когда мы соединяем два существующих узла с новым ребром (E=E+1
, но V
остается неизменным), приведя уравнение E=V-1
false.
Если вас интересует, вы можете прочитать о более общей формуле v - e + f = 2
, где f
- количество областей внутри графа, включая внешнюю область. (Дерево имеет только внешнюю область, поэтому f=1
). Это правило называется формулой Эйлера, которую вы можете прочитать о on Wikipedia.
Подключено:
Это означает, что для каждой пары выбранных вершин всегда будет путь между ними.
| E | = | V | -1:
, если ваш график имеет | V | вершины и вам даны | E | = | V | -1 ребра для их соединения, тогда, если вы сформируете цикл, вы не сможете сформировать связанный граф (некоторые вершины останутся без краев).
Мы можем заключить, что этих условий достаточно.
- 1. Проверьте неориентированный граф является деревом в NetworkX
- 2. Определите, является ли неориентированный граф деревом
- 3. Как проверить, не является ли граф не деревом?
- 4. Является ли null бинарным деревом?
- 5. Является ли Trie искусственным деревом?
- 6. Проверьте, является ли граф подграфом другого графика в графике
- 7. Является ли tree.DecisionTreeRegressor деревом модели или деревом регрессии?
- 8. Проверьте, не является ли Newtonsoft.Json.Linq.JToken
- 9. Является ли O (logn) всегда деревом?
- 10. Является ли это полным двоичным деревом?
- 11. проверить, является ли дерево двоичным деревом поиска
- 12. Является ли дерево, созданное сбалансированным деревом tsearch()?
- 13. Является ли этот список двоичным деревом поиска?
- 14. Определение, является ли граф выпуклым
- 15. Измените метод DFS, чтобы он мог определить, является ли граф деревом или нет.
- 16. Проверьте, является ли объект
- 17. граф, где не является нулевым
- 18. Проверьте, не является ли файл не каталогом
- 19. Проверьте, не является ли результат уникальным
- 20. Проверьте, не является ли атрибут CoreData пустым
- 21. Z3: Проверьте, не является ли модель уникальной.
- 22. Проверьте, не является ли многоугольник самопересекающимся
- 23. VB.Net Проверьте, не является ли тип IEnumerable
- 24. mod_rewrite: проверьте, не является ли определенный домен
- 25. Проверьте, не является ли sampler2D пустым
- 26. Проверьте, не является ли NSMutableDictionary пустым?
- 27. Проверьте, не является ли результат MySQL пустым
- 28. Проверьте, не является ли сертификат подстановочным сертификатом
- 29. Проверьте, не является ли объект Ruby логическим.
- 30. Проверьте, не является ли массив C++ Null
Да, этого достаточно. –