2019-12-12

오늘 해야 할 일

  • Graph 를 pseudoclassical style로 구현
  • binarySearchTree.js 를 functional style로 구현

느낀점

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

결론은,

  1. 외부함수에 트리의 값들을 모을 공간을 배열로 만들어 변수에 할당해준다
  2. 트리에 값을 추가하는 insert 함수에 전달되는 값을 배열에 푸쉬해주는 코드를 작성해준다.
  3. 트리의 값들로 이루어진 배열의 각각의 요소를 콜백함수의 인자로 넘겨준다.

클로저를 이용하면 이렇게 간단한 문제를 너무 복잡하게 생각했던거 같다.

내일 할 일

  • hashTable.js 를 pseudoclassical style로 구현
  • 작성완료한 자료구조 구현코드 다시한번 보면서 리펙토링!

Written by@Heaeun
코드리뷰, TDD, 함께 자라기를 지향하는 프론트엔드 개발자입니다

GitHub