[英]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 is 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()
我在此鏈接上找到了該代碼。
但是不明白一些說法,如下
children = stack[-1]
// stack[-1]
是什么意思?
child = next(children, None)
// child是列表還是children是列表?
stack = [iter(G[source])]
//那是什么iter
?
如果child為None://猜測child是否為空(child是一個列表)。
visited = [source]
//這是什么?
yield visited + [target]
//收益?
誰能向我解釋? 我正在嘗試用C重寫它。
看起來像python代碼
stack[-1]
表示將給出最后一個元素。
children
是一個變量,通過此代碼可保存列表stack
的最后一個元素
children = stack[-1]
child
是next()
函數返回的內容,但是從它的外觀看,它也看起來像一個變量。
next()
函數返回None
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.