traversal 2

[ 개념 ] 15. Graph - BFS(너비우선탐색)

> BFS(Breadth-First Search, 너비우선탐색) 그래프 순회 순회(traversal) 그래프의 모든 노드들을 방문하는 일 대표적 두 가지 방법 BFS (Breadth-First Search, 너비우선순회) DFS (Depth-First Search, 깊이우선순회) 너비우선탐색(BFS) BFS 알고리즘은 다음 순서로 노드들을 방문 L0 = {s}, 여기서 s는 출발 노드 L1 = L0의 모든 이웃 노드들 L2 = L1의 이웃들 중 L0에 속하지 않는 노드들 ... Li = Li-1의 이웃들 중 Li-2에 속하지 않는 노드들 한마디로 그래프에서 노드들을 동심원의 형태로 순회하는 방법 큐를 이용한 너비우선탐색 출발노드를 check하고 시작한다. 큐에 스타트 노드(1번노드)를 삽입한다. whil..

[ 개념 ] 10. 트리(Tree)와 이진트리(Binary Tree)

> 트리와 이진트리 기본 트리(Tree) 계층적인 구조를 표현하기 위해 사용하는 자료구조 조직도 디렉토리와 서브디렉토리 구조 가계도 용어 루트(Root) 트리는 노드(node)들과 노드들을 연결하는 링크(link)들로 구성된다. 맨 위의 노드를 루트라고 한다. 부모-자식(parent-child) 관계 각 노드들의 상하 관계를 부모-자식(parent-child)관계로 나타낸다. 형제 관계(sibling) 루트노드를 제외한 트리의 모든 노드들은 유일한 부모노드를 가진다. 부모가 동일한 노드들을 형제관계라고 부른다. 리프(leaf) 노드 자식이 없는 노드들을 leaf 노드라고 부른다. 리프노드가 아닌 노드들을 내부(internal)노드라고 부른다. 조상-자손(ancestor - descendant) 관계 부모..