2025年11月15日 星期六

bfs 最簡版

 from collections import deque

g = {

    'a':['b','c'],

    'b':['d'],

    'c':['e','f'],

    'd':['g'],

    'e':[],

    'f':[],

    'g':[]    

}


def trav_bfs(g,n,v):

    q = deque([n])

    v.add(n)   

    while q:

        cnode = q.popleft()

        print(cnode,end=' ')

        for nn in g[cnode]:

            if nn not in v:

                v.add(nn)

                q.append(nn)

    

v = set()

n = 'a'

trav_bfs(g, n, v)

                

# a b c d e f g 

dfs 最簡版

 g = {

    'a':['b','c'],

    'b':['d'],

    'c':['e','f'],

    'd':['g'],

    'e':[],

    'f':[],

    'g':[]    

    }



def dfs_trav(g,n,v):

    v.add(n)

    print(n,end=' ')

    for nn in g[n]:

        if nn not in v:

            dfs_trav(g, nn, v)


v = set()

n = 'a'

dfs_trav(g, n, v)

執行結果
#a b d g c e f 

2025年11月6日 星期四