Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2015, 17:51   #1
Praud
Форумчанин
 
Аватар для Praud
 
Регистрация: 11.10.2012
Сообщений: 409
По умолчанию Радиус графа

Код:
int Radius(int f)
{
    int **edge = new int *[n];
    for (int i = 0; i < n; i++)
        edge[i] = new int [n];
    for (int i = 0; i < n; i++)
        for (int j = 0; j < n; j++) {
            edge[i][j] = a[i][j];
            if (!edge[i][j]) 
                edge[i][j] = 10000;
        }
        for (int k = 0; k < n; k++)
            for (int i = 0; i < n; i++)
                for (int j = 0; j < n; j++)
                    if (i != j)
                        edge[i][j] = MIN(edge[i][j], edge[i][k]+edge[k][j]);
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                if (edge[i][j] == 10000) 
                    edge[i][j] = 0;
            }
        }
        int min = edge[f][f+1];
        for (int j = f+1; j < n; j++) {
            if(edge[f][j] < min)
                min = edge[f][j];
        }
        return min;
        delete [] edge;
}
Подскажите, что за входной параметр f ?
Praud вне форума Ответить с цитированием
Старый 16.05.2015, 18:15   #2
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,950
По умолчанию

Употребляется в
Код:
int min = edge[f][f+1];
        for (int j = f+1; j < n; j++) {
            if(edge[f][j] < min)
                min = edge[f][j];
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 16.05.2015, 18:23   #3
Praud
Форумчанин
 
Аватар для Praud
 
Регистрация: 11.10.2012
Сообщений: 409
По умолчанию

Спасибо, это я заметил. Его же передают в функцию верно? За что он отвечает?
Я как понимаю нахожу не просто радиус графа, а с каким-то условием?
Praud вне форума Ответить с цитированием
Старый 16.05.2015, 18:59   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,342
По умолчанию

Функция вернет минимальное расстояние между вершиной f и вершинами f+1,...,n. Если какого-либо из этих путей нет, то функция вернет 0.
Кстати, в коде присутствует утечка памяти. Код после return не выполняется. А если бы выполнялся, то вызов delete [] edge освободит только массив edge, но не массивы edge[i].
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
создание графа по матрице и поиск кратчайшего пути из одного графа в другой lexflax Общие вопросы C/C++ 1 06.09.2012 07:32
Радиус R Orif2011 C# (си шарп) 1 22.09.2011 10:12
по заданной матрице смежности простого графа построить каркас этого графа с использованием поиска вширь d1m2o3n4 Помощь студентам 0 22.06.2011 22:43
Внешний радиус невзвешенного графа MsSvaliotsuda Помощь студентам 0 02.09.2010 18:02
Радиус Syltan Общие вопросы по Java, Java SE, Kotlin 4 18.06.2010 15:19