깊이우선탐색은 루트 노드가 어디에 위치하는가에 따라서 세가지로 나뉘어 진다. 전위순회, 중위순회, 후위순회 전위순회 루트노드가 가장 먼저 나오는 방식 루트노드가 가장 먼저 나오고나서 왼쪽부터 노드들을 순회 중위순회 루트노드가 중간에 나오는 방식 노드들의 왼쪽부터 순회하여 루트노드가 중간에 나옴 후위순회 루트노드가 마지막에 나오는 방식 왼쪽노드 -> 오른쪽노드 -> 부모노드 순서로 순회 각각의 예제코드 아래는 트리를 구성하는 코드이다. #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..
Ugly number 내가푼코드 #include #include #include /* run this program using the console pauser or add your own getch, system("pause") or input loop */ using namespace std; int a[1501]; int main() { //freopen("input.txt", "rt", stdin); int n, i, j, x, p1=1, p2=1, p3=1, min=2147000000; scanf("%d", &n); j=1; a[1]=1; i=1; while(i
- Total
- Today
- Yesterday
- Stack
- 세마포어
- C++
- 소프트웨어
- 자료구조
- dfs
- 입출력장치
- javascript
- 인접리스트
- 인접행렬
- C
- 교착상태
- stackframe
- 최단경로
- react
- 알고리즘
- server side rendering
- Java
- BFS
- 재귀함수
- 이진탐색
- 운영체제
- 배열
- client side rendering
- 구조체
- 퀵정렬
- 동적프로그래밍
- 스텍
- 병행프로세스
- 클래스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |