재귀호출( Recursive Call)
함수 안에서 자기자신을 호출해서 무한반복 하는 경우로, for/while 문을 대신해서 사용할 수 있다.
다음과 같이 사용하는데, "HelloWorld"를 출력한 뒤, 800ms 가 지나고 print() 함수 안에서 print() 함수를 다시 호출해서 반복하게 된다. 조건은 역시 static한 함수여야 바로 호출할 수 있다.
이진트리 (Binary Tree)
포인터 두개를 이용해서 아래로 이어붙이는 자료구조
위 코드에서 만든 이진 트리의 구조를 그림으로 나타내면 다음과 같다. left, right 두 개의 포인터를 가진 Node를 가리키는 인스턴스를 이용해 가지고있는 data 값의 대소에 따라 어느 포인터 방향에 데이터를 입력할지 결정한다. 작은 데이터는 left 쪽으로, 큰 데이터는 right 쪽으로 보내 데이터를 정렬시킨다.
이진 트리의 노드에 데이터를 배치할 때는, 중복을 허용하지 않고, 작으면 왼쪽 / 크면 오른쪽으로 보낸다. null 인 Node를 만나면 data를 입력한다. 라는 4가지 원칙을 지키면 된다.