Graph, binarySearchTree 둘다 어려웠다.. 특히 binarySearchTree를 구현하면서 내가 작성하면서도 헤깔려서 슈도코드를 꼭 위에 적어놓고 시작했다..binarySearchTree는 새로운값이 추가될때 ROOT 노드보다 작은값은 왼쪽으로 큰값은 오른쪽으로 보내는 자료구조인데, 왼쪽 오른쪽으로 나누어진 값들을 모두 콜백함수에 매개변수로 넣어 실행시키는 depthFirstLog라는 메소드를 구현하면서 시간을 많이 사용했다.. 이미 왼쪽 오른쪽으로 분리되어 나누어진 값들을 대체 어떻게 다시 한곳에 모아 콜백함수를 실행시킬지가 감이 안잡혀서.. 왼쪽 트리를 탐색해서 값을 모으고 또 오른쪽 트리를 탐색해서 모아보고 여러가지를 시도해 보았지만 안되서 우울했는데..구글링과 여러 블로그를 참고한 덕분에 문제를 해결할 수 있었다.
결론은,
외부함수에 트리의 값들을 모을 공간을 배열로 만들어 변수에 할당해준다
트리에 값을 추가하는 insert 함수에 전달되는 값을 배열에 푸쉬해주는 코드를 작성해준다.