forked from CamilleNAVEL/projetinfo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathverifie_connexe.py
44 lines (37 loc) · 1.31 KB
/
verifie_connexe.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
def rec_explorer(Graphe,node,visited=None):
"""Fourni la liste des noeuds accessibles depuis un noeud
Parameters
----------
Graphe : Graphe
une instance de la classe Graphe
node : int
code d'identification de la destination (noeud)
visited : list
liste de code d'identification (liste(noeuds))
Returns
----------
list :
la liste des noeuds accessibles
"""
if visited is None:
visited=[]
if node not in visited:
visited.append(node)
unvisited=[n for n in Graphe.vertex[node] if n not in visited] #on a accès aux noeuds voisins de node
for node in unvisited:
rec_explorer(Graphe,node,visited) #on rentre dans le set des noeuds en récursif
return visited
def verif_connexe(G):
"""Vérifie si un graphe est connexe
Parameters
----------
G : Graphe
une instance de la classe Graphe
Returns
----------
bool :
True si G est connexe, False sinon
"""
L=list(G.vertex.keys()) #liste des noeuds du graphe
l=L[0] #le premier noeud
return rec_explorer(G,l) == L #il faut que les noeuds accessibles depuis un point du graphe soit égal à la liste de tous les noeuds du graphe