recursive 3

[JAVA] 재귀 - 이진트리(Binary Tree)의 순회

앞에 글에서 이진탐색트리의 삽입을 구현했었다. 이진탐색트리 삽입 (1) - http://marobiana.tistory.com/81이진탐색트리 삽입 (2) - http://marobiana.tistory.com/82 이번에는 순회에 대해 짜볼 것이다.사실 이걸 정리하고 싶었을 뿐인데, 이진탐색트리 삽입이 더 복잡해서 거기서 시간 다보냄 ㅎㅎ 요번건 소스가 아주 간단함. 1. 이진트리 순회 방법컴공 2학년 때 자료구조에서 배우는 요것.. 순회 방법에는 3가지가 있다.각 순회방법으로 갔을 때 순서를 적어보겠다. - Pre order (전위) : Root부터 왼쪽 모든 노드 탐색 후 오른쪽 24 15 2 19 28 27 30 - In order (중위) : 맨 왼쪽 아래노드부터 Root, 오른쪽 2 15 19..

[JAVA] 재귀 기초 - 피보나치 (Fibonacci)

재귀에 대한 이해도가 전혀 없다면 http://marobiana.tistory.com/79 fibo(2-2) + fibo(2-1) else문의 첫번째 메소드인 fibo(2-2)가 호출 된다. 3) fibo(2-2)n은 0이므로 if문에서 0리턴하고 종료 fibo(2-2) + fibo(2-1) => 0 + fibo(2-1) 4) 스택에 있던 fibo(2)로 다시 돌아가서, fibo(2-1)이 실행된다.n이 1이므로 1을 리턴하고 종료된다. 5) 스택에 있던 fibo(2)에서는 fibo(2-2) + fibo(2-1) => 0 + 1 else문에서 각각 리턴된 0과 1을 더한 1을 리턴하고 종료된다. 현재, 아래와 같이 출력된 상황임. 11 6) main 함수에서는 i는 3이 되어, fibo(3)이 호출된다...

[JAVA] 재귀 기초 - 팩토리얼 (Factorial)

오랜만에 재귀 문제를 풀다보니 헷갈려져서 정리한번 해보겠음.재귀 중에 가장 쉬운 팩토리얼부터.. 1. 재귀함수란? 함수 내에서 자기 자신을(함수)를 계속적으로 콜 하면서 풀어가는 방식이다.스택(Stack)이라고 생각할 수 있다.함수가 콜 되면서 최근에 자신을 부른 원래 함수가 스택에 차곡차곡 쌓이게 됨.중요한건 처음 불려진 함수에서(스택 맨 밑에있는 메소드) return 되는 값이 최종 return 값이 된다 2. 팩토리얼이란? 3! = 3*2*1 = 64! = 4*3*2*1 = 245! = 5*4*3*2*1 = 120 3. 재귀 예제 문제 : 특정 숫자의 팩토리얼 구하기 간단하게 소스 투척 public class Factorial {public static void main(String[] args) ..