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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Не компилируются проекты: Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped http://www.cyberforum.ru/cpp-beginners/thread1240571.html
Здравствуйте, уважаемые специалисты. Недавно начал изучать С++ Компилятор Visual C++ при попытке скомпилировать любой код выдаёт это: ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== Подскажите пожалуйста, в чем может быть проблема? Заранее спасибо.
C++ Конструктор копирования, аварийное завершение на этапе исполнения #include <iostream.h> #include <string.h> class String{ private: char *data; int max_length; public: String() { http://www.cyberforum.ru/cpp-beginners/thread1240568.html
C++ Будут ли все константы гарантированно инициализированы к моменту обращения к ним из разных единиц трансляции
Безопасно ли такое использование: // config.cpp const int ival = 6; const SomeNonTrivialClass obj(...); // config.h extern const int ival; extern const SomeNonTrivialClass obj; // some_source_file.cpp
Как реализовать свой тип данных C++
Здравсвтуйте,подскажите пожалуйста как реализовать с с++ свой тип данных. Допустим хочу завести массив,где каждому arr будет соответсвовать две переменные(arr.a,arr.b). Если точнее - arr.a,arr.b ... arr.a,arr.b. В дельфи такое делалось через type. Читал про структуры,но вроде это не то,что надо.
C++ Перегруженный operator<< http://www.cyberforum.ru/cpp-beginners/thread1240484.html
Есть допустим такая дружественная функция: объявление template<typename Type> friend std::ostream& operator<<(std::ostream&, Stack<Type>&); определение template<typename Type> std::ostream& operator<<(std::ostream& stream, Stack<Type>& obj_show) { Stack<Type>::node* ptr = obj_show.top;
C++ Вывести на экран суммарный результат, указав число студентов сдавших и проваливших экзамен День добрый помогите решить задачу: есть 10 студентов ( 10 раз на екран должно высвечиватся"Введите результат" результат- если пользователь пишет 1,значит студент сдал,если пишет 2 - провалил нужно -подсчитать число результатов каждого типа) -вывести на экран суммарный результат,указав число студентво здавших и проваливших -если хотя бы 8 студентов сдало тест написать "Отлично" подробнее

Показать сообщение отдельно
frEEze00
2 / 2 / 1
Регистрация: 10.07.2014
Сообщений: 25
10.08.2014, 17:34  [ТС]     Поиск минимального остовного дерева на графе
Цитата Сообщение от ya_noob Посмотреть сообщение
хреново переделали видать, т.к. в строке 50 (в первом посте) операция бессмысленна, min не должен здесь менять значение. скорее всего есть и другие ошибки переделки.
min должен менять значение, так как по другому ты не сможешь сравнивать элементы. и в исходной программе min меняет значение(строка 36).

И да, мечусь, пробую все варианты, может и заработает. Поиск минимального остовного дерева, алгоритм Прима. В алгоритме я уже давно разобрался. С реализацией возникли проблемы, вот и прибег к готовому решению. Только вот проблема, я вполне понимаю как оно работает, но не могу понять, почему не работает у меня.

Сейчас еще нашел ошибку у себя. вот переделанная фунуция:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
for (i=1; i<=kolVer; i++)
{
    for (j=1; j<=kolVer; j++)
    {
        if (cost[i][j]<min) 
        {
            if (used[i]!=false)
            {
            min=cost[i][j];
            i2=i3=i;
            j2=j3=j;
            }
        }
    }
 
    if (used[i3]==false || used[j3]==false)
    {
        rebro[iRebra]=j2;
        cout<<"\n rebro[i]="<<rebro[i]<<"\n";
        iRebra++;
        shet++;
        minCost=minCost+min;
        used[j2]=true;
    }
    cost[i2][j2]=cost[j2][i2]=maxCost;
 
}
остальное все так же как в первом посте..
Ошибка пропала, но теперь проблема в том, что переменная rebro[iRebra] выводиться всегда равная нулю. и minCost увеличивается на min только один раз. пример вывода:
99
3
8 7 6
5 4 3
2 1 0

выводит :
1 -> 0 -> 0
Мин стоимость: 6

а должен выводить:
1 -> 3 -> 2
Мин стоимость: 7

ps. В 19 строчке вывожу переменную rebro, выводит ноль. Почему то не присваивается ей значение j2; (ну или присваивается только один раз, когда j2 и есть равное 0)
 
Текущее время: 23:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru