Графы

  • 18 мая 2017 г.
  • 254 Слова
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ

НАЦИОНАЛЬНЫЙ АЭРОКОСМИЧЕСКИЙ УНИВЕРСИТЕТ

ИМ. Н. Е. ЖУКОВСКОГО «ХАИ»






ЛАБОРАТОРНАЯ РАБОТА № 8
“Транзитивное замыкание”Вариант 5









Выполнил: студент группы 325 
Горанина Сергей
Проверил: ст.преподаватель Подоляка А.Н.









ХАРЬКОВ-2016
Цель работы – сделать полное замыкание.Постановка задачи: составить транзитивное замыкание для графа

Текст программы:
Main.cpp:
#include
using namespace std;
void main()
{
const int mysize = 7;
//1 2 3 4 5 6 7
int MyGraph[mysize][mysize]={{ 0, 1, 0, 0, 0, 0, 1 },//1
{ 1, 0, 0, 0, 0, 1, 0 },//2
{ 0, 0, 1, 1, 0, 0, 0},//3
{ 0, 0, 1, 0, 0, 0, 0 },//4
{ 0, 0, 1, 0, 0, 0, 0 },//5
{ 0, 1, 0, 0, 0, 0, 1 },//6
{ 1, 0, 0, 0, 0, 1, 0 }};//7
intResMyGraph[mysize][mysize];

for (int i = 0; i < mysize; i++) //copy
for (int j = 0; j < mysize; j++)
ResMyGraph[i][j] = MyGraph[i][j];


cout << "Step #0" << "\n";for (int i = 0; i < mysize; i++) //vivod res
{
for (int j = 0; j < mysize; j++)
cout << ResMyGraph[i][j] << " ";
cout << "\n";
}


for (int i = 0; i < mysize;i++)//uslovie
{
for (int j = 0; j < mysize; j++)
for (int k = 0; k < mysize; k++)
if (MyGraph[i][j] == MyGraph[k][i] && MyGraph[i][j] == 1)
ResMyGraph[k][j]= 1;
cout << "Step #" << i+1 << "\n";


for (int i = 0; i < mysize; i++) //vivod res
{
for (int j = 0; j < mysize; j++)
cout << ResMyGraph[i][j] << " ";cout << "\n";
}

}
system("pause");
}
Вывод: на лабораторной работе были изучены методы транзитивного замыкания.


Скриншоты выполнения программы:...