DFS를 이용해 가중치 방향 그래프가 주어진 것을 보고 N번 정점으로 가는 최소 비용을 출력하는 프로그램을 작성하는 문제이다. 내가 작성한 코드(오답) #include #include /* run this program using the console pauser or add your own getch, system("pause") or input loop */ using namespace std; int map[30][30], n, m, ch[30], sum, min_val=214700000; void DFS(int v){ int i; if(v==n){ printf("sum: %d\n", sum); if(sum
깊이우선탐색은 루트 노드가 어디에 위치하는가에 따라서 세가지로 나뉘어 진다. 전위순회, 중위순회, 후위순회 전위순회 루트노드가 가장 먼저 나오는 방식 루트노드가 가장 먼저 나오고나서 왼쪽부터 노드들을 순회 중위순회 루트노드가 중간에 나오는 방식 노드들의 왼쪽부터 순회하여 루트노드가 중간에 나옴 후위순회 루트노드가 마지막에 나오는 방식 왼쪽노드 -> 오른쪽노드 -> 부모노드 순서로 순회 각각의 예제코드 아래는 트리를 구성하는 코드이다. #include using namespace std; void D(int v){ if(v>7) return; else { D(v*2); D(v*2+1); } } int main() { D(1); return 0; } 위 코드에서는 D라는 재귀함수를 계속적으로 호출하고 있지만..
stack frame이란? 함수가 호출되면 stack에 함수의 매개변수와 지역변수, 호출이 끝난 후 돌아갈 주소값이 저장된다. 이렇게 stack에 차례대로 저장되는 함수의 호출 정보를 stack frame이라고 한다. 재귀함수와 stack frame c++언어로 재귀함수를 배우면서 stack frame이라는 개념이 나온 것은 출력순서를 이야기하면서 부터였다. 만약 n까지 출력하는 프로그램을 작성한다고 해보자 아래 코드와 같이 작성할 수 있다. #include /* run this program using the console pauser or add your own getch, system("pause") or input loop */ using namespace std; void D(int x){ if..
- Total
- Today
- Yesterday
- 인접행렬
- 입출력장치
- javascript
- 소프트웨어
- 재귀함수
- 동적프로그래밍
- 알고리즘
- react
- 자료구조
- 인접리스트
- 퀵정렬
- 세마포어
- C++
- 이진탐색
- server side rendering
- Stack
- 병행프로세스
- stackframe
- client side rendering
- 운영체제
- BFS
- 배열
- C
- 클래스
- 구조체
- 스텍
- dfs
- 최단경로
- Java
- 교착상태
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |