From 538b07f0da99eb6dc40effd989c81e6fe209f99f Mon Sep 17 00:00:00 2001 From: josch Date: Wed, 4 Jul 2012 11:17:29 +0200 Subject: [PATCH] return result instead of using references --- cycles.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/cycles.py b/cycles.py index a439dad..aaa6747 100644 --- a/cycles.py +++ b/cycles.py @@ -72,9 +72,8 @@ point_stack = list() marked = dict() marked_stack = list() -def backtrack(v, f): - g = [False] - f[0] = False +def backtrack(v): + f = False point_stack.append(v) marked[v] = True marked_stack.append(v) @@ -83,10 +82,9 @@ def backtrack(v, f): A[w] = 0 elif w==s: print_point_stack() - f[0] = True + f = True elif not marked[w]: - backtrack(w, g) - f[0] = f[0] or g[0] + f = backtrack(w) or f if f: while marked_stack[-1] != v: u = marked_stack.pop() @@ -94,12 +92,13 @@ def backtrack(v, f): marked_stack.pop() marked[v] = False point_stack.pop() + return f for i in range(len(A)): marked[i] = False for s in range(len(A)): - backtrack(s, [False]) + backtrack(s) while marked_stack: u = marked_stack.pop() marked[u] = False