Graphe python

Résolu/Fermé
etudiant - 30 oct. 2009 à 16:27
 etudiant - 30 oct. 2009 à 18:51
Bonjour a tous,
j'ai un exercice a faire dont voila l'énonce:
en utilisant la représentation que vous préférez (cad. matrice adj ou liste adj) écrivez une fonction connecte(g,i,j) qui détermine s'il existe un chemin dans le graphe g allant de i a j.

je rappel que le programme doit etre en python.

voila comme j'ai commence mais je n'arrive pas trop a imaginer le truc a faire:
l1=[[1,8],[0,2,8],[1,3],[2,7,8],[5,6,9],[4,6],[4,5],[3],[0,1,3],[4]]

def connecte(g,i,j):
    if j in g[i]: return True
    else:
        if g[i]==[] or g[j]==[]: return False
        x=g[i][-1]
        if g[i][-1]==i: x=g[i][0]
        return connecte(g,x,j)

print connecte(l1,1,6)


mais la j'ai un probleme le programme ne fonctionne pas
voila si pouvez m'aider.

3 réponses

.
0
une autre version:
l1=[[1,8],[0,2,8],[1,3],[2,7,8],[5,6,9],[4,6],[4,5],[3],[0,1,3],[4]]

def connecte(g,i,j):
    if g[i]==[] or g[j]==[]: return False
    if j in g[i]: return True
    x=g[i][-1]
    if g[x][-1]==i: x=g[i][0]
    return connecte(g,x,j)

print connecte(l1,1,6)
0
Résolu c bon
0