高效算法——07歐拉路徑(Python)

07歐拉路徑

 

算法: 

#coding=utf-8
"""
    算法:歐拉路徑
    作者:lph-China
    時間:2019/7/17
"""

def eulerian_tour_undirected(graph):
    
    P = []
    Q = [0]
    R = []
    next = [0] * len(graph)
    seen = [set() for _ in graph]
    while Q:
        node = Q.pop()
        P.append(node)
        while next[node] < len(graph[node]):
        neighbor = graph[node][next[node]]
        next[node] += 1
        if neighbor not in seen[node]:
            seen[neighbor].add(node)
            P.append(neighbor)
            node = neighbor
        while R:
            Q.append(R.pop())
    return P

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章