Tree
- 계층적 구조, 부분 집합으로 나누면, Sub Tree로 볼 수 있음
- 부모와 자식 노드로 구성됨, 같은 부모를 가진 형제 노드도 존재
- 기본형은 객체로 되어 있음, 데이터만 가진게 아님, 키와 벨류로 이루어진 데이터와 메소드를 가짐
Binary Searct Tree
- Tree 자료구조 중 하나, 빠른 탐색에 특화됨
- root 기준 작 -> 왼, 큰 -> 오 몰아 넣고, 기준점으로 서치 시작(업&다운 게임처럼)
= root: 10, 15는 10보다 크니 왼쪽은 안찾아봐도 됨, 오른쪽에서도 첫 value를 기준으로 재귀
Graph
- 정점(vertex)와 간선(edge)로 구성
- 무향/방향 그래프: 간선의 방향이 단일인지, 양방향인지 (셀프 루프, 사이클)
- 가중치/비가중치 그래프: 간선에 조건이 달려있는지
- 인접 matrix: 구현 및 활용도가 matrix가 좋음
= matrix[row][column]: row: vertex, column: edge, 보통 이 구조로 표현
- 인접 list: vertex 추가 및 삭제 기능을 구현할 때에는 list가 좋음
DFS(depth first search, 깊이 우선 탐색)
BFS(breadth first search, 너비 우선 탐색)