[Algorithm] Tree Traversal (Feat. BFS, DFS)
·
Algorithm/Algorithm (이론)
트리 순회 Skill 모든 트리를 순회하며 부모 정보를 갱신한다. Depth (높이) 정보도 갱신한다. 핵심 아이디어 사실 트리 자료구조는 그래프에서 Cycle 이 사라지고 계층 (부모-자식 관계)가 남은 것이므로 그래프 순회 이론을 거의 그대로 적용 가능하다. 부모 노드를 제외한 다른 모든 노드를 자식으로 갖는다. 모든 자식 노드의 depth는 부모 노드의 depth + 1 이다. BFS 를 이용한 방법 // 부모를 담을 배열 parents 와 // 깊이를 보관할 배열 depths // 인접 노드를 담은 adjacentList 만 필요하다. private fun bfs(rootNode: Int, parents: IntArray, depths: IntArray, adjacentList: Array) { ..