[알고리즘] 깊이 우선 탐색(DFS, Depth-First Search)
·
컴퓨터 과학/알고리즘
너비 우선 탐색이 시작 정점에서 시작하여 점차 탐색 범위를 넓혀 나가는 방식이라면, 깊이 우선 탐색은 시작 정점에서 시작하여 특정 경로를 따라 가능한 멀리 있는 정점을 재귀적으로 먼저 방문하는 방식이다.깊이 우선 탐색 깊이 우선 탐색은 시작 정점을 경계에 추가하는 것으로 시작한다. 너비 우선 탐색의 그림 예를 변형해서 가져왔다. 하나의 지점에서 시작하여 가능한 멀리 있는 정점에 도달하고 재귀하는 방식을 가진다.구현 깊이 우선 탐색은 두 가지의 코드를 사용할 수 있다. 1. Stack를 이용한 깊이 우선 탐색 2. 재귀 함수를 이용한 깊이 우선 탐색 이 두 가지가 있다. (1) #include #include #include using namespace std; bool visited[9]; vector ..
[자료구조] 스택(Stack)
·
컴퓨터 과학/자료구조
스택(stack) : 후입선출(LIFO:Last-In First-Out)의 방식(가장 최근에 들어온 데이터가 가장 먼저 나간다)을 이용한다. 스택에서 입출력이 이루어지는 부분을 스택 상단(stack top)이라 하고, 반대쪽인 바닥부분을 스택 하단(stack bottom)이라고 한다. 스택에 저장되는 것을 요소(element) 또는 항목이라고 한다. 스택에 요소가 하나도 없는 경우를 공백(empty) 상태라 하고 꽉 차서 더 이상 요소를 넣을 수 없는 상태를 포화(full) 상태라 한다.배열을 이용한 스택의 구현1차원 배열 stack[ ]스택의 크기 : 배열의 크기스택에 저장된 원소의 순서 : 배열 원소의 인덱스인덱스 0번 : 스택의 첫번째 원소인덱스 n-1번 : 스택의 n번째 원소변수 top: 가장 최..
김치바보
'stack' 태그의 글 목록