Если вы пытаетесь найти минимальное остовное дерево, у вас всегда будет одинаковое количество ребер, веса просто будут разными.Метод, который я рекомендую использовать для решения этой проблемы, - это алгоритм Прима.Это работает лучше всего, когда у вас есть четкие взвешенные края.Хотя кто-то еще обсуждал это как возможность, я объясню это полностью здесь, чтобы решить проблему минимального связующего дерева с неориентированным связным графом.
Первый шаг к Приму начинается с любой вершины V и добавляется к (в настоящее время) пустому набору вершин, который называется «Обнаружен».Оттуда вы посмотрите на все ребра, которые примыкают к V (используя вашу матрицу смежности) и связаны с вершинами, которые не находятся в «Discovered» (используя ваш обнаруженный набор), и добавите их в структуру минимальной кучи.Куча позволит вам взять минимальное ребро и добавить его в новую древовидную структуру.Другой конец этого ребра - ваша следующая новая начальная вершина.Повторяйте этот процесс, пока не получите минимальное связующее дерево.