ABOUT ME

Today
Yesterday
Total
  • DFS/BFS
    Base Line/알고리즘 2022. 2. 14. 18:10

     

    #방문처리
    def dfs(graph,v,visited):
        visited[v] = True
        print(v,end=" ")
        for i in graph[v]:
            if not visited[i]:
                dfs(graph,i,visited)
    #각 노드들을 방문처리 하면서 깊이 탐색 진행            
    graph = [
        [],
        [2,3,8],
        [1,7],
        [1,4,5],
        [3,5],
        [3,4],
        [7],
        [2,6,8],
        [1,7]
    ]
    #그래프에 8개의 노드가 있으므로 처음 자리 0이므로 9개생성
    visited = [False]*9
    dfs(graph,1,visited)


    #BFS : 너비 우선 탐색 => 가까운 노드부터 탐색하는 알고리즘
    from collections import deque
    def bfs(graph,start,visited):
        queue = deque([start])
        visited[start]=True
        #현재노드 방문처리
        while queue:
            v=queue.popleft()
            print(v,end=' ')
            for i in graph[v]:
                if not visited[i]:
                    queue.append(i)
                    visited[i]=True

    graph = [
        [],
        [2,3,8],
        [1,7],
        [1,4,5],
        [3,5],
        [3,4],
        [7],
        [2,6,8],
        [1,7]
    ]

    visited = [False]*9
    bfs(graph,1,visited)



     
    #reference : 이코테

    'Base Line > 알고리즘' 카테고리의 다른 글

    DFS 업데이트  (0) 2022.10.25
    이진 탐색  (0) 2022.02.22
    정렬  (0) 2022.02.08
Designed by Tistory.