Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Поиск остовного леса методом Соллина - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Итерационные и рекурсивные алгоритмы http://www.cyberforum.ru/cpp-beginners/thread854644.html
Вычислить на ЭВМ значение суммы членов бесконечного ряда с заданной точностью и значение суммы, определяемое пределом суммы ряда ( по формуле). Напечатать значения сумм и число циклов ряда, вошедших...
C++ Чистая виртуальная функция Скажите, может ли чистая виртуальная функция иметь тело? В книге написано что может, но не написано как. Пытался сам определить по-разному - не получилось. В интернете нашел пару примеров с телами,... http://www.cyberforum.ru/cpp-beginners/thread854601.html
Надо написать функцию, которая по массиву действительных чисел x1, x2, ..., xn находит произведение положительных элементов массива C++
Надо написать функцию, которая по массиву действительных чисел x1, x2, ..., xn находит произведение положительных элементов массива.Вот у меня уже есть программа, только здесь для 10 элементов. Как...
vector.clear C++
У меня вопрос по поводу метода clear(). Пусть у меня в векторе было 30 элементов, после вызова этого метода их стало 0, поэтому size() тоже вернет 0. Но вот capacity() показывает 30, т.е. если я...
C++ точность, настраиваемая вручную http://www.cyberforum.ru/cpp-beginners/thread854568.html
Мне нужно произвести расчет с точность 27 знаков после запятой. Long double не хватает. Как определить вручную? Добавлено через 2 часа 4 минуты :umnik:
C++ FreeConsole не работает FreeConsole не работает если программу запустить через другую программу командой system("start путь к программе"); а если саму программу без посторонних включить то работает, что делать подробнее

Показать сообщение отдельно
iifat
2253 / 1409 / 109
Регистрация: 05.06.2011
Сообщений: 3,876
03.05.2013, 15:09
А, так это промежуточный вариант? Ну, тогда осталось начать и кончить: продумать представление леса, найденные рёбра надо сразу вычёркивать, дабы не просматривать второй раз (точнее говоря, при слиянии двух кустов вычёркивать все рёбра между ними).
Я б таки посоветовал переписать полностью. Представление графа вполне, конечно, логичное, но для данной задачи весьма неудобное. Имхо, завязать рёбра в единый список (упорядоченный по возрастанию весов), в каждой вершине хранить номер минимальной вершины своего куста. Отдельный список для выбранных рёбер.

Добавлено через 4 минуты
Ну, примерно так: вот взяли ребро (с минимальным весом); две вершины, которые оно соединяет, стягиваем в одну, удаляя из графа наше ребро и все остальные, кои соединяют эти вершины; прочие рёбра, которые вели из любой из этих вершин, меняем на аналогичные, соединённые с нашей новой вершиной (при этом могут появиться многократные рёбра из одной вершины в другую). Повторяем, пока не останется всего одна вершина.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru