Queue 2

BFS/DFS 간단 예제 - Swift

개념 BFS (Breath First Search) 너비 우선 순회 queue로 구현 (queue를 활용하기 때문에 FIFO) 장점 : 최적해를 찾을 것을 보장한다 ex) 지구 상에 존재하는 모든 친구 관계를 그래프로 표현 후, 짱구와 철수 사이의 관계 경로를 찾는 경우 BFS : 짱구와 가까운 관계부터 살핀다 DFS : 지구 상 모든 관계를 다 살펴봐야할지도,, 로직 시작 노드를 큐에 삽입하고 방문처리 큐에서 노드를 꺼낸 뒤 해당 노드의 인접 노드 중 방문하지 않은 노드를 모두 큐에 삽입 후 방문처리 (방문하면 현재 위치는 pop해주고 방문처리 -> 방문할 곳은 queue에 넣음) DFS (Depth First Search) 깊이 우선 순회 stack과 재귀 함수로 구현 두 노드 사이의 최단 경로 혹..

Stack / Queue 구현해보기 - swift

** 작성자가 stack / queue를 연습하면서 작성한 기록을 남긴내용입니다. 나중에 자세한 설명가 추가 내용을 작성하며 수정할 예정입니다. ** Stack - LIFO, array로 구현 - 다양한 자료형을 수용할 수 있도록 generic을 이용 - push, pop 메서드의 경우 구조체 내부에서 데이터를 수정하기 때문에 mutating 키워드를 사용. struct Stack { var stack = [T]() var isEmpty: Bool { return self.stack.isEmpty } var top: T? { return self.stack.last } mutating func push(_ item: T) { self.stack.append(item) } mutating func pop(..

반응형
1