01.07.2013 Views

9. Anexos.

9. Anexos.

9. Anexos.

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

If SolucionMST(i).Inactivo = False Then<br />

ReDim Preserve Solucion(Tamano)<br />

Tamano = Tamano + 1<br />

Solucion(j) = SolucionMST(i)<br />

j = j + 1<br />

End If<br />

Next i<br />

End Sub<br />

<strong>9.</strong>2.2.3. El algoritmo de Dijkstra.<br />

Módulo: Dijkstra.bas<br />

Option Explicit<br />

Option Base 1<br />

Private Type Reg_L<br />

Valor As Long<br />

Visto As Boolean<br />

End Type<br />

Dim Mat_C() As Long<br />

Dim Mat_L() As Reg_L<br />

Dim NodosAdy() As Lista_Ady<br />

<strong>Anexos</strong>.<br />

Public Sub Hallar_CamMin_Dijkstra(ByRef Vector() As Reg_Arcos, NumeroNodos As Long, NodosOrigen() As<br />

Long, Solucion() As Reg_Arcos, Origen As Integer)<br />

Dim i As Integer, j As Integer<br />

Dim D() As Single<br />

Calcular_Matriz_Pesos Vector, NumeroNodos, D()<br />

Calcular_Adyacentes Vector, NodosAdy, False<br />

Dijkstra NodosOrigen(Origen), NumeroNodos, D()<br />

Interpreta_MatrizAdy Vector, Solucion, D(), NodosOrigen(Origen)<br />

If Origen < UBound(NodosOrigen) Then<br />

34

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!