Для преобразования вам нужен лес (т. Е. Набор деревьев, где первоначально каждый узел является деревом), как ваша временная структура вывода, а не одно дерево. Затем, на каждом шаге, вместо того, чтобы находить самую дешевую вершину, которая добавляет в данный момент не связанный узел, вы найдете самое дешевое ребро в графе и, если оно создает новое дерево (т. Е. Соединяет два ранее несвязанных узла), добавьте это дерево к леса и удалить исходные деревья. В противном случае отбросьте край. Правильная реализация Kruskal более интенсивна в памяти, но меньше времени, чем правильная реализация Prim.
Но различия между ними довольно велики. Вероятно, все, что вы можете сохранить, - это некоторые вспомогательные функции и некоторые структуры данных. Не конверсия, больше переписывайте, используя более высокие строительные блоки.
У вас гораздо больше шансов получить полезный ответ, если вы разместите соответствующий код в строке вопроса. Алгоритм Prim - всего четыре строки псевдокода, поэтому я не могу поверить, что необходим архив размером в полдюжины файлов. –
Ну, вы можете прочитать только основной файл, потому что нет необходимости смотреть на все файлы. – 2009-09-03 09:06:12
IMHO эти алгоритмы не настолько похожи, что выгодно конвертировать из одного в другое - Prim требует некоторой очереди приоритетов, в то время как Kruskal использует глобальный отсортированный список ребер. Вам лучше начать с нуля. –