[Swift] DFS, BFS 메소드

임클·2024년 3월 13일
0

Swift

목록 보기
37/37
func dfs(_ start: Int) -> [Int] {
    var visitedQueue = [Int]()
    var needVisitedQueue = [start]
    while !needVisitedQueue.isEmpty {
        let node: Int = needVisitedQueue.removeLast()
        if visitedQueue.contains(node) { continue }
        visitedQueue.append(node)
        needVisitedQueue += graph[node].reversed()
    }
    return visitedQueue
}
func bfs(_ start: Int) -> [Int] {
    var visitedQueue = [Int]()
    var needVisitedQueue = [start]
    
    while !needVisitedQueue.isEmpty {
        let node: Int = needVisitedQueue.removeFirst()
        if visitedQueue.contains(node) { continue }
        visitedQueue.append(node)
        needVisitedQueue += graph[node]
    }
    return visitedQueue
}
profile
iOS를 공부하는 임클입니다.

0개의 댓글