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

Нахождение циклов в графе , используя смежную матрицу - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Раскройте глаза начинающему прогеру (в расшифке кода) http://www.cyberforum.ru/cpp-beginners/thread1490728.html
Дана задача://Удалить из строки символов(char)пробел в начале строки&есть решение #include <iostream> using namespace std; int main() {setlocale(LC_ALL,"Rus"); char stroka; int i=0, n=32;...
C++ Двоичная обработка данных Есть такая программа по двоичной обработке массива. Я не совсем понимаю, как здесь менять биты местами, к примеру наложением маски (0х00х0хххххххххх) поменять местами 1 и 3 бит с 4 и 6 битами... http://www.cyberforum.ru/cpp-beginners/thread1490713.html
Регулировка скорости C++
Надо составить прогу, которая позволяет текст, содержащийся в файле, воспроизвести сигналами азбуки Морзе. При этом текст должен посимвольно выводиться на экран. Предусмотреть возможность плавной...
C++ Найти разницу между минимальным и максимальным из набора чисел
Дано 20 вещественных чисел. Найти разницу между минимальным и максимальным из них.
C++ Копировать несколько символов из одной строки в другую http://www.cyberforum.ru/cpp-beginners/thread1490694.html
Нужна функция которая копирует символы из переменной в переменную начиная например от 5 символа и заканчивая 9
C++ Выводятся на печать смайлики вместо элементов строки #include <stdio.h> #define MAXLINE 1000 int getline(char line, int maxline); void copy(char to, char from); /* печать самой длинной строки */ main() { подробнее

Показать сообщение отдельно
Adventurer_
0 / 0 / 0
Регистрация: 06.04.2015
Сообщений: 5

Нахождение циклов в графе , используя смежную матрицу - C++

30.06.2015, 20:19. Просмотров 755. Ответов 1
Метки (Все метки)

Возникла такая задача: используя смежную матрицу, нужно определить циклы графа. Граф ненаправленный и нет мультивекторов(т.е. наша матрица симметрична, и в ней только единицы и нули). Старался сделать сам, но как то не совсем получилось
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
69
70
71
72
73
74
75
#include <iostream>
using namespace std;
 
void print(int ms[20][20], int N);
void printresult(int ms[20], int counter);
 
 
int main()
{
    int mas1[20][20], mas[20];
    int N, x, y, counter = 0, kat = 0, j, i = 0, k;
    bool otv;
    cout << "Enter N:";
    cin >> N;
    cout << "\nEnter matrix:\n";
 
    for (x = 0; x < 20; x++) for (y = 0; y < 20; y++) mas1[x][y] = 0;
 
    for (x = 0; x < N; x++){
        for (y = x + 1; y < N; y++){
            mas1[x][y] = mas1[y][x] =rand() % 2;
        }
    }
 
    print(mas1, N);
 
    for (x = 0; x < 20; x++) mas[x] = 0;
 
    for (x = 0; x < N; x++){
        for (y = x + 1; y < N; y++){
            if (mas1[x][y]){
                j = x;
                kat = y;
                mas[i++] = kat;
                while (kat != j){
                    for (k = 0; k < N; k++){
                        otv = false;
                        if (k == kat) continue;
                        if (mas1[kat][k]){
                            mas1[kat][k] = 0;
                            kat = k;
                            mas[i++] = kat;
                            otv = true;
                            break;
                        }
                    }
                    if ((k == N) && (!otv)){
                        for (x = 0; x < 20; x++) mas[x] = 0;
                    }
                }
                if (otv) printresult(mas, i);
            }
        }
    }
 
    system("pause");
    return 0;
}
 
void print(int ms[20][20], int N){
    for (int x = 0; x < N; x++){
        for (int y = 0; y < N; y++){
            cout << ms[x][y] << ' ';
        }
        cout << '\n';
    }
}
 
void printresult(int ms[20], int counter){
    cout << '\n';
    for (int x = 0; x < counter; x++){
        cout << ms[x] << ' ';
    }
    cout << '\n';
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru