Пошук мінімального кістяка графа (Visual Basic)
39

ДОДАТКИ

Додаток А

Програма знаходження мінімального покриваючого дерева графа

Function MinTree(C As Variant) As Variant

Dim I, J, K, Im, Jm As Integer

Dim Dis(), Tree(), Vlink() As Integer

Dim S, S1 As String

N = C.Columns.Count

ReDim Dis(N, N), Tree(N, N), Vlink(N)

' -- Підготовка початкових масивів

For I = 1 To N

     Vlink(I)= 0 '<- цей масив зберігає номери вершин, що додаються до ' дереву

     For J = 1 To N

         Dis(I, J)= C(I, J)

         Tree(I, J)= 0 '<- цей масив зберігає структуру оптимального ' дерева

     Next J

Next I

До = 1

Vlink(1)= 1

' -- Знаходження ребра з мінімальною вагою

While До <= N

    Rec = 1000

    For I = 1 To N

        For J = 1 To N

    If Dis(I, J)<> 0 And Rec > Dis(I, J) And Vlink(I)= 1 And Vlink(J)= 0 Then

              Rec = Dis(I, J)

              Im = I

              Jm = J

           End If

       Next J

    Next I

' -- Додавання знайденої вершини до покриваючого дерева

    Vlink(Jm)= 1