순환

자료구조(Data Structure)

이진 트리의 순회

이진 트리의 순회 이진 트리를 순회한다는 것은, 이진트리에 속하는 모든 노드를 한 번씩 방문하여 노드가 가지고 있는 데이터를 목적에 맞게 처리하기 위함이다. 스택이나 큐에서는 순회하는 방법이 한가지 밖에 없었지만, 이진트리를 순회하는 방법은 여러가지 이다. 이진트리 순회 방법 이진트리의 순회 방법엔 크게 3가지가 있다. 전위 : VLR 후위 : LRV 중위 : LVR 루트노드를 방문하는 것을 V, 왼쪽 서브트리를 방문하는 것을 L 그리고 오른쪽 서브트리를 방문하는 것을 R이라고 하자. 루트노드를 방문한다음 서브트리를 방문하는 것을 전위순회라고 하고, 루트노드를 왼쪽과 오른쪽 서브트리 중간에 방문하는 것을 중위순회라고 하며, 루트노드를 서브트리 방문 후에 방문하면 후위순회라고 한다. 트리 순회 알고리즘은..

자료구조(Data Structure)

순환 - 팩토리얼, 거듭제곱값, 피보나치 수열, 하노이 탑

순환 순환이란 어떤 알고리듬이나 함수가 자기 자신을 호출하여 문제를 해결하는 프로그래밍 방법이다. 순환적인 문제를 해결하는데 적합하고, '반복'을 사용하는 것 보다 간결하고 이해가 쉬울 때도 있다. 하지만, 함수를 호출하고 기억장소를 할당해야 하기때문에 반복에 비해서 비효율적이고 속도가 느릴 수 있다. 순환의 예 순환은 순환적인 문제를 해결하는데 적합하다고 했다. 예를 들어, 팩토리얼(factorial)계산은 순환적이다. 팩토리얼의 정의를 살펴보면, n!을 계산하기 위해 n에 (n-1)!을 곱한다. 즉, n!을 정의하기 위해서 다시 (n-1)!을 사용한다는 것이다. 이러한 것을 '순환적'이다 라고 한다. 이것을 재귀함수를 이용해서 풀어보자. int factorial(int n) { if(n

Jminu
'순환' 태그의 글 목록