簡體   English   中英

stack [-1]在偽代碼中是什么意思?

[英]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代碼


1) stack[-1]表示將給出最后一個元素。
2) children是一個變量,通過此代碼可保存列表stack的最后一個元素

 children = stack[-1] 

childnext()函數返回的內容,但是從它的外觀看,它也看起來像一個變量。


4)如果child為None:如果next()函數返回None

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM