Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 06.06.2015
Сообщений: 21
1

Нахождение отрицательного цикла в графе и вывод цикла

12.06.2015, 13:55. Просмотров 788. Ответов 0
Метки нет (Все метки)


Вот программа по нахождению отрицательного цикла в графе и вывод цикла
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
void Floyd(int GR[][MAXV], int parents [][MAXV], int V) {
  int checking; int p[100]; int check1=-1;
  for (int k = 0; k < V; ++k) {
   for (int i = 0; i < V; ++i)
              for (int j = 0; j < V; ++j)
                    if (GR[i][j] > GR[i][k] + GR[k][j]) {
                          GR[i][j] = GR[i][k] + GR[k][j];
                          parents[i][j] = parents[k][j];
                          checking=parents[i][j];
                          p[j]=parents[k][j];
                          if ((i==j) && (GR[i][j]<0)) {
                              check1=0;
                          }
                    }
        for (int i = 0; i < V; ++i) {
              for (int j = 0; j < V; ++j) {
                  cout <<GR[i][j]<<" ";
              } cout<<endl;
        }
        cout<<endl;
  }
  if (check1 == -1) {
      cout<<"Нет отрицательных циклов"<<endl;
 
  }
  else {
      cout <<"Есть отрицательный цикл!"<<endl;
      int y = checking;
      int ans = 0;
      for (int i=0; i<V; ++i)
              y = p[y];
 
      vector<int> path;
      for (int cur=y; ; cur=p[cur]) {
              path.push_back (cur);
              ans++;
              if (cur == y && path.size() > 1)  break;
      }
 
      reverse (path.begin(), path.end());
      cout<<"Отрицательный цикл: ";
      for (size_t i=0; i<path.size()-1; ++i)
              cout << path[i]+1 << ' ';
      cout << path[path.size()-1]+1;
  }
}
Проблем в том, что я не знаю как работать со списком в Pascal. Не знаю как перевести вот этот фрагмент
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
cout <<"Есть отрицательный цикл!"<<endl;
      int y = checking;
      int ans = 0;
      for (int i=0; i<V; ++i)
              y = p[y];
 
      vector<int> path;
      for (int cur=y; ; cur=p[cur]) {
              path.push_back (cur);
              ans++;
              if (cur == y && path.size() > 1)  break;
      }
 
      reverse (path.begin(), path.end());
      cout<<"Отрицательный цикл: ";
      for (size_t i=0; i<path.size()-1; ++i)
              cout << path[i]+1 << ' ';
      cout << path[path.size()-1]+1;
  }
}
И еще вопрос. Как в этой программе хранится граф ? Матрица смежности ? Если можно, то напишите пожалуйста пример входа. Спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.06.2015, 13:55
Ответы с готовыми решениями:

Нахождение отрицательного цикла в графе и вывод цикла
Вот программа по нахождению отрицательного цикла в графе и вывод цикла void Floyd(int GR, int...

Поиск отрицательного цикла (контура) в графе
Всем привет! Помоги пожалуйста с программой! :-mass), затем я её модифицирую: for (int i = 0; i &lt;...

Нахождение кратчайшего цикла в графе
Программа для нахождения кратчайшего цикла в графе. Не могу корректно отладить.Прошу...

Нахождение кратчайшего цикла в графе
Программа для нахождения кратчайшего цикла в графе. Не могу корректно отладить.Прошу...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.06.2015, 13:55

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Нахождение кратчайшего цикла в графе
Программа для нахождения кратчайшего цикла в графе. Поиск цикла обходом графа в ширину. Проблема...

Нахождение гамильтонова цикла в графе
Как заставить код работать? По условию задачи нужно найти гамильтонов цикл в графе. Если такового...

Нахождение гамильтонового цикла в графе
Подскажите, пожалуйста, правильный ли мой алгоритм для нахождения гамильтоновго цикла в графе имея...

Нахождение длины кратчайшего цикла в графе
Нужно найти длину кратчайшего цикла в графе. Есть функция ввода матрицы смежности,но есть проблемы...


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

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

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