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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Kemsit
4 / 4 / 1
Регистрация: 07.06.2009
Сообщений: 62
#1

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

09.01.2010, 01:06. Просмотров 405. Ответов 2
Метки нет (Все метки)

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
    #include <iostream>
    using namespace std;
    #define n 10
    int c[n] ; // номер хода, на котором посещается вершина
    int path[n]; // номера посещаемых вершин
    int v0=2; // начальная вершина
    //Матрица смежности
    int a[n][n]=
    {
 
            0,0,0,0,0,7,0,0,0,0,
 
            0,0,2,0,0,0,5,0,0,0,
 
            0,4,0,11,0,0,0,9,0,0,
 
            0,0,8,0,9,0,0,0,6,0,
 
            3,0,0,6,0,0,0,0,0,9,
 
            0,0,0,0,0,0,4,0,0,2,
 
            0,0,0,9,0,0,0,6,0,0,
 
            0,0,0,0,3,0,0,0,0,0,
 
            0,0,0,0,0,0,0,0,0,6,
 
            0,0,0,0,0,0,0,0,0,0
 
    };
    void prnt(void)
    {
        int p;
        for ( p = 0 ; p<n ; p++)
        printf("%d ", path[p] ) ;
        printf("%d ", path[0] ) ;
        printf("\n") ;
    }
    //подпрограмма нахождения гамильтонова цикла
    int gamilton ( int k)
    {
        int v,q1=0;
        for(v=0; v<n && !q1; v++)
        {
            if(a[v][path[k-1]]||a[path[k-1]][v])
            {
                if (k==n && v==v0 ) q1=1;
                else if (c[v]==-1)
                {
                    c[v] = k ; path[k]=v;
                    q1=gamilton (k+1) ;
                    if (!q1) c[v]=-1;
                } else continue;
            }
        } return q1;
    }
    int main()
    {
        setlocale (LC_ALL, "Russian");
    int j;
    printf("Гамильтонов цикл:\n");
    for(j=0;j<n;j++) c[j]=-1;
    path[0]=v0 ;
    c[v0]=v0;
    if(gamilton (1)) prnt(); else printf("Нет решений\n");
    system ("pause");
    }
Эта программа ищет гамельтонов цикл в матрице. Помогите сделать так чтобы прога искала минимальный гамельтонов цикл...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2010, 01:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поиск минимального гамильтонова цикла в матрице (C++):

Поиск минимального цикла - C++
Очень надеюсь, не ошибусь в терминах. Имеется полный неориентированый взешенный граф. Вводится числ Н, потом идет матрица смежности НхН,...

Поиск минимального элемента в матрице - C++
Помогите решить задачку,Вводим в ручную матрицу и в нем нужно найти минимальные элемент спасибо

Поиск максимального и минимального значения в матрице - C++
Подскажите как найти минимальное и максимальное значение в матрице 20 на 20 (я так понял рендомных чисел )но при условии что эти числа не...

Поиск максимального и минимального элементов в матрице - C++
В квадратной матрице определить максимальный и минимальный элементы. Если таких элементов несколько, то максимальный определяется по...

Поиск минимального и максимального элемента в матрице - C++
Помогите в моем коде реализовать поиск минимального и максимального элемента функция minmax #ifndef _LIBRARYMATRIX_H_ ...

В заданной квадратной матрице определить сумму минимального и максимального из элементов - C++
В матрице размерности 8 на 8 определить сумму минимального и максималь-ного из элементов. В каждой второй строке заменить положительные...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
mikhail2704
39 / 39 / 8
Регистрация: 18.11.2009
Сообщений: 115
09.01.2010, 14:09 #2
А почему двумерный массив a[n][n] заполняется как одномерный и нет объявления функций. К тому же использовать глобальные переменнын нежелательно.
Kemsit
4 / 4 / 1
Регистрация: 07.06.2009
Сообщений: 62
09.01.2010, 14:55  [ТС] #3
Цитата Сообщение от mikhail2704 Посмотреть сообщение
А почему двумерный массив a[n][n] заполняется как одномерный и нет объявления функций. К тому же использовать глобальные переменнын нежелательно.
Спасибо за помощь, задача уже решена.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.01.2010, 14:55
Привет! Вот еще темы с ответами:

В квадратной матрице найти сумму минимального и максимального элементов главной диагонали - C++
В квадратной матрице найти сумму минимального и максимального элементов главной диагонали. Добавлено через 3 часа 13 минут Помогите...

Поиск минимального элемента - C++
Доброго времени суток. Помогите пожалуйста с программой, вот задание: В одномерном массиве, состоящим из n вещественных элементов,...

Поиск минимального значения - C++
Здравствуйте подскажите пожалуйста, как сделать поиск минимального значения. Дано 5 формул типа z=8*x+y*2. Нужно вывести наименьший...

Поиск минимального элемента матрицы - C++
Люди добрые помогите пожалуйта написать программу на С++ Задан двухмерный массив целых чисел A размером N на M. Найти минимальный элемент...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru