트리는 정말 어렵다. 트리는 정말 진짜로 어렵다.
DFS (Depth First Search) 깊이 우선 탐색
DFS는 STACK 이라는 자료 구조를 사용한다. STACK은 FIRST IN LAST OUT이다.
DFS 탐색을 시작한다.
- Root node V 부터 시작한다. Stack에 V 노드를 넣는다.
- V 노드를 current로 옮기고 방문경로로 옮기는 순간 V노드에 연결되어있는 2개의 노드를 Stack에 추가한다.
E를 넣고 A를 넣는 이유는 Stack은 마지막으로 들어간 노드가 먼저 나오기 떄문이다.
- Stack에 제일 마지막에 들어온 A를 Current 로 옮긴다.
- Current에 있는 A를 방문경로로 옮기는 순간 A와 연결된 노드 C를 Stack에 넣는다.
- Stack에 있던 C를 current로 옮긴다,
- Current에 있던 C를 방문경로로 옮기는 순간 C와 연관된 노드를 Stack에 추가하려 하지만 C와 연결된 노드가 없다.
그러면 Stack에 아무것도 추가되지 않는다,
- Stack에 있던 E를 current로 옮긴다.
- Current에 있던 E를 방문경로로 옮기는 순간 E와 연관된 노드 B와 R을 Stack에 추가한다.
- Stack에 있던 B를 current로 옮긴다.
- Current에 있는 B를 방문경로로 옮기는 순간 B와 연관된 노드를 Stack에 추가하려 하지만 연관된 노드는 없다.
- Stack에 있던 R를 current로 옮긴다.
- Current에 있는 R를 방문경로로 옮기는 순간 R와 연관된 노드를 Stack에 추가하려 하지만 연관된 노드는 없다.
위 트리의 DFS는
V A C E B R
출처 : 인프런 눈떠보니 코딩 테스트 전날
'개발이나하자.. > others' 카테고리의 다른 글
[window]윈도우에서 파이썬 설치 및 환경변수 설정하기 | 파이참 파이썬 세팅 | venv 실행 (0) | 2020.09.02 |
---|---|
[postgres] MAC postgres 설치 & 데이터베이스 생성 & django + postgreSQL 데이터베이스 연결 (0) | 2020.08.29 |
[mysql] AWS RDS + django 에서 한글이 인식이 안 될 때 (0) | 2020.04.22 |
[mysql] pip install mysqlclient 에러 (0) | 2020.04.07 |
[CS 기초] Linked List (0) | 2020.01.10 |