МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
кафедра ЗІ
ЗВІТ
До лабораторної роботи №12
з курсу: «Інформатика»
на тему: «Основні поняття теорії граф»
ТЕКСТ ПРОГРАМИ
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace lab_inform_12
{
class Program
{
static void Main(string[] args)
{
GRAFU g = new GRAFU();
g.Initialization();
Console.WriteLine("Обхiд в глибину:");
g.OG(g.A, 0, g.A.GetLength(0));
g.Initialization();
Console.WriteLine("\nОбхiд в ширину:");
g.OS(g.A, 0);
foreach (int i in g.B)
Console.Write(" " + i);
Console.ReadKey();
}
}
class GRAFU
{
public int[,] A;
public int[] B;
public int start, end;
public void Initialization()
{
A = new int[,] {{0, 1, 0, 0, 0, 0, 0, 1, 0},
{1, 0, 1, 0, 0, 0, 0, 1, 0},
{0, 1, 0, 1, 0, 0, 0, 1, 0},
{0, 0, 1, 0, 0, 0, 1, 0, 1},
{0, 0, 0, 0, 0, 1, 1, 0, 0},
{0, 0, 0, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 0, 0, 1, 0},
{1, 1, 1, 0, 0, 0, 1, 0, 0},
{0, 0, 0, 1, 0, 0, 0, 0, 0}};
}
public void OG(int[,] A, int v, int n)
{
A[v, v] = 1;
Console.Write(" " + (v));
for (int j = 0; j < n; j++)
if ((A[v, j] == 1) && (A[j, j] == 0))
OG(A, j, n);
}
public void OS(int[,] A, int v)
{
B = new int[A.GetLength(0)];
B[0] = v;
start = B[0];
end = start + 1;
while (start != end)
{
v = B[start];
A[v, v] = 1;
for (int j = 0; j < A.GetLength(0); j++)
{
foreach (int x in B)
if (j == x)
goto Here;
if ((A[v, j] == 1) && (A[j, j] == 0))
{
B[end] = j;
end++;
}
Here: ;
}
start++;
}
}
}
}
РЕЗУЛЬТАТ РОБОТИ ПРОГРАМИ