problem mit return
Verfasst: Donnerstag 7. Juni 2007, 20:23
hallo zusammen
ich habe mit Hilfe des Tiefensuche_Algorithmus eine Funktion geschrieben, mit der man kontrollieren kann, ob ein Graph schleifenfrei ist.
Die Suche an sich funktioniert gut.
Problem habe ich mit dem return Befehl(tut nicht was ich erwarte).
ich rufe die funktion so :
print dfs(net, 1, 34, stack) # erwarte z.B 1 als ausgabe , bekomme aber None
was mache ich falsch ?
merci schonmal
ich habe mit Hilfe des Tiefensuche_Algorithmus eine Funktion geschrieben, mit der man kontrollieren kann, ob ein Graph schleifenfrei ist.
Die Suche an sich funktioniert gut.
Problem habe ich mit dem return Befehl(tut nicht was ich erwarte).
ich rufe die funktion so :
print dfs(net, 1, 34, stack) # erwarte z.B 1 als ausgabe , bekomme aber None
was mache ich falsch ?
Code: Alles auswählen
def dfs(net, node , goal, stack):
#pdb.set_trace()
c.nodes[node].visited+= 1
if node == goal :
return 1
if c.nodes[node].visited == 2 :
return 8
else:
for edge in c.nodes[node].edge :
n1 = c.edges[edge].node1.index
n2 = c.edges[edge].node2.index
if n1 != node and c.nodes[n1].visited == 0 :
stack.append(n1)
continue
elif n2 != node and c.nodes[n2].visited == 0 :
stack.append(n2)
if len(stack)!=0 :
no = stack.pop()
dfs (net, no , goal, stack)
else :
return 0