cs_osta
Messages postés27Date d'inscriptionmardi 3 février 2004StatutMembreDernière intervention10 octobre 2006
-
25 avril 2004 à 23:10
cs_osta
Messages postés27Date d'inscriptionmardi 3 février 2004StatutMembreDernière intervention10 octobre 2006
-
25 avril 2004 à 23:39
J'ai fait un code permettant de calcumer tous les chemins entre deux noeuds donnés d'un graphe
Function roadmap(ByVal chem As String, ByVal ext As Variant, destination As String)
Dim successeurs As New Collection 'Contient les successeurs d'un noeud du graphe
Dim noeuds As New Collection 'contien tous les noeuds du graphe
Dim k, nod As Variant
Dim adj(10, 10) As Variant
For k = 1 To 4 'remplir les noeuds
noeuds.Add Item:=k
Next k
For Each k In noeuds 'calcul des successeurs d'un noeud
If adj(ext, k) = 1 Then
successeurs.Add Item:=k
End If
Next k
If ext = destination Then 'Si on arrive à destination alors on écrit la solution et on passe au successeur suivant
Debug.Print chem
Else
For Each nod In successeurs
If InStr(1, chem, nod, vbTextCompare) = 0 Then
chem = chem & nod
Call roadmap(chem, nod, destination)
End If
Next nod
End If
End Function
Toutefois j'obtiens les chemins suivants "124" et "1234" au lieu de "124" et "134"