2024年1月10日 星期三

dfs and bfs

 g = {

     1:[2,3],

     2:[4,5],

     3:[6,7],

     4:[],

     5:[8],

     6:[],

     7:[],

     8:[]     

     }


v = []

def dfs(g,v,n):

    print(n,end=' ')

    v.append(n)

    for nb in g[n]:

        if nb not in v:

            dfs(g,v,nb)

dfs(g,v,1)

print()


v=[]

q = []

def bfs(g,v,n):

     q.append(n)

     while q:

         p=q.pop(0)

         if p not in v:

             print(p,end=' ')

             v.append(p)

             for nb in g[p]:

                 if nb not in v:

                     q.append(nb)

bfs(g,v,1)


# 執行結果

# 1 2 4 5 8 3 6 7 

# 1 2 3 4 5 6 7 8 

沒有留言:

張貼留言