[TIL] 프론트엔드 Day 3

KIKO·2022년 3월 23일
0

TIL

목록 보기
3/23
post-thumbnail

공부한 내용

1. 시간복잡도

2. Array

연속된 메모리 공간에서 Index를 이용해 접근, 접근의 시간 복잡도가 O(1)O(1)이지만, 삽입/삭제시 O(n)O(n)의 선형시간이 걸린다. 데이터에 접근이 많고, 수정이 적을 때 알맞은 자료구조.

3. Linked List

각 노드에 다음 노드의 위치 정보를 가지고 있어 이를 따라 값을 찾는다. 따라서 접근의 시간 복잡도는 O(n)O(n), 데이터의 추가/삭제는 주변 노드의 위치 정보의 수정만으로 가능하여 O(1)O(1)이다.

4. Stack

LIFO(Last In First Out) 형식의 자료구조, 가장 위의 값만 확인할 수 있다.

5. Queue

FIFO(First In First Out) 형식의 자료구조, 가장 앞의 원소를 front , 가장 뒤의 원소를 rear라 부른다. 시작과 끝이 이어진 circular queue 형태 또한 존재한다.

6. Tree


여러 노드가 이어진 형태의 자료구조, 최상위에 위치한 Root Node에서 각 노드까지의 경로가 유일한 것이 특징이다.

7. Trie


탐색 트리의 일종, 웹 개발에서 문구 자동완성에 이용한다. 하나의 문자열을 Character 단위로 나누어 다음 node로 가는 Key로 사용한다.

다시 볼 내용

Javascript 내부에서 자료구조의 구현

느낀점

대학교에서 접했던 내용이 많았지만, 역시 아는 것과 설명하는 것은 큰 차이가 있음을 느꼈다. 팀원에게 막힘없이 설명할 수 있는 것을 목적으로 오늘 배운 내용을 정리해 봤지만, 정말 쉽지 않다. 지금까지 잘 만들어진 C++ STL을 사용한 것도, 오늘 공부에 괴리감을 줬다. '설마 현업에서도 자료구조를 Javascript 구현하지는 않겠지?'같은 생각을 하며 오늘의 TIL을 마친다.

Reference

  1. 위키백과, 트리 구조
    https://ko.wikipedia.org/wiki/%ED%8A%B8%EB%A6%AC_%EA%B5%AC%EC%A1%B0
  2. 위키백과, 트라이
    https://ko.wikipedia.org/wiki/%ED%8A%B8%EB%9D%BC%EC%9D%B4_(%EC%BB%B4%ED%93%A8%ED%8C%85)
profile
개발자로 발돋움

0개의 댓글