기초 자료구조에 대해서 정리해 놓는다.
그닥 내용은 없지만, 그냥 한번 훑어보는 정도.
자료구조 개요
어떤 자료구조를 안다함은, 다음을 안다는 것이다.
- 정의
- 특징 / 특이사항
- 접근 시간
- 사용 상황 구분
위 자료구조들은 기초적인 것으로, 굳이 여기에 다 적진 않는다.
트리
좀 더 자세히 알아보고 싶은 것은 비선형구조의 트리다.
선형 구조와 다르게, 비선형 구조는 구조 특성상 여러 형태로 응용되기 때문에, 좀 더 알 필요가 있다.
정의
트리의 정의는 다음과 같다고 한다.
- 트리는 하나의 루트 노드를 갖는다.
- 루트 노드는 0개 이상의 자식 노드를 갖고 있다.
- 그 자식 노드 또한 0개 이상의 자식 노드를 갖고 있고, 이는 반복적으로 정의된다.
- 트리는 DAG(Directed Acyclic Graphs, 방향성이 있는 비순환 그래프)의 한 종류이다.
출처 : https://gmlwjd9405.github.io/2018/08/12/data-structure-tree.html
뭐.. 별 내용 없다. 마지막 4번. 트리와 그래프의 차이는, 트리는 방향 그래프의 일종이고 싸이클이 없다는 것이다.
일반적으로, 그래프는 네트워크모델, 트리는 계층모델이다.
종류
트리의 종류는 기준이 뭐냐에 따라 겁나 다양한데… 뭐 각 기준별로 하나씩 살펴보면
-
그냥 트리 vs 이진 트리
-
이진 탐색 트리
-
Full, Complete, Perfect (완전 이진, 전 이진, 포화 이진)
- Full : 모든 노드가 0개 또는 2개의 자식 노드를 갖는 트리.
- Complete : 트리의 모든 높이에서 노드가 꽉 차 있는 이진 트리. 마지막 레벨은 꽉 차 있지 않아도 되자만 노드가 왼쪽에서 오른쪽으로 채워져야 한다.
- Perfect : Full + Complete 상태인 트리.
-
-
균형 트리 vs 비균형 트리
- 레드 블랙 트리
- AVL 트리
-
힙
- 최소 힙, 최대 힙
-
트라이
- 접두사를 빠르게 찾아보기 위해 사용되는 트리구조
와 정말 기초다.
참고했거나 참고하면 좋은 링크
Heejeong Kwon님 블로그. 트리란
aria-grande님 블로그. 기술 면접에서 주눅들지 않으려면
'취업과 기본기 튼튼 > 빽 투더 기본기' 카테고리의 다른 글
빽 투더 기본기 [알고&자구 4편]. 해시 테이블 (0) | 2019.04.18 |
---|---|
빽 투더 기본기 [알고&자구 3편]. 균형 트리 (0) | 2019.04.17 |
빽 투더 기본기 [알고&자구 1편]. 정렬 (0) | 2019.04.16 |
재귀적으로 문제 해결하기 (1) (0) | 2018.08.20 |
큐 구현하기 (0) | 2018.08.17 |