algorithm - What does stack[-1] mean in a pseudocode? -
def _all_simple_paths_graph(g, source, target, cutoff=none): if cutoff < 1: return visited = [source] stack = [iter(g[source])] while stack: children = stack[-1] child = next(children, none) if child none: stack.pop() visited.pop() elif len(visited) < cutoff: if child == target: yield visited + [target] elif child not in visited: visited.append(child) stack.append(iter(g[child])) else: #len(visited) == cutoff: if child == target or target in children: yield visited + [target] stack.pop() visited.pop()
i find code on link.
but did not understand statements, following
children = stack[-1]
//stack[-1]
mean?child = next(children, none)
// child list or children list?stack = [iter(g[source])]
//iter
?if child none: // guess if child empty (child list).
visited = [source]
// that?yield visited + [target]
// yield?
can explain me? trying rewrite in c.
it looks python code
1)
stack[-1]
means give last element. 2)
children
variable, code holds last element of list stack
children = stack[-1]
child
whatever next()
function returns, looks of it, looks variable.
4) if child none: if
next()
function returns none
Comments
Post a Comment