Если не знаешь чем граф отличается от дерева - вот короткий пост со свойствами дерева. Depth-first-search с использованием Adjacency List В задачах на программирование граф представлен неудобно, обычно в виде массива рёбер или вершин. Для графа на рисунке 1, такое представление может выглядеть как [ [0,1], [0,2], [0,3], [1,4] ] Первое что нужно сделать - преобразовать такой массив в формат с которым удобно работать. Одним из вариантов является AdjacencyList Затем к полученной структуре нужно применить Depth-first-search модифицированный под конкретную задачу...
В теории графов деревом называется граф, в котором все вершины соединены рёбрами (возможно, посредством других вершин) и отсутствуют циклы (последовательности рёбер, соединяющие какую-либо вершину саму с собой). В данном случае деревья являются корневыми, то есть имеют определённую вершину - корень. Это понятное, но неформальное определение дерева. Теорема Краскала утверждает последовательность деревьев TREE(n), описанную следующими законами: TREE(1) даёт единственное дерево с одной вершиной: если попытаться добавить ещё одно с двумя вершинами, при удалении любой из них получится первая...