트라이(Trie) 문자열을 저장하고 빠르게 탐색하기 위한 트리 형태의 자료구조이다. Prefix Tree, Retrieval Tree, Digital Search Tree 라고도 부른다. 정렬된 트리구조다. 문자열같은 것들을 트라이에 구축을 해둬야하기 때문에 문자열 저장을 위한 메모리가 (많이)필요하지만 탐색이 빠르다. 길이가 N개인 문자열 탐색의 시간복잡도는 O(N)이다. 대신 사전에 이런 문자열들을 이 트라이 형태로 구축을 해야하는데 구축할 때 드는 생성시 시간복잡도는 트라이에 넣으려는 문자열의 개수가 M개라고 할 때 O(MN)이다. 하지만 한번 구축하면 탐색할 때 굉장히 빠르다는 장점이 있다. 동일 위치에서의 공통 부분들은 중복해서 들어가지는 않지만 다른 부분에 대해서는 트라이를 적용시켜줘야 하기 ..
그래프(Graph) 그래프는 트리의 상위 개념의 자료구조로, 정점과 간선으로 구성된다. 연결된 정점간의 관계를 표현할 수 있는 자료구조이다. 그래프의 용도는 지하철 노선도나 통신 네트워크같은데에서 쓰인다. 그래프에서 사용되는 용어 정점(Vertex) : 그래프 구조의 자료 값을 담고 있는 단위(노드) 간선(Edge) : 노드 간의 연결선(link, branch) 인접 정점(Adjacent vertex) : 간선 하나를 두고 바로 연결된 정점 정점의 차수(Degree) : 무방향 그래프에서 하나의 정점에 인접한 정점의 수 무방향 그래프 모든 정점 차수의 합 = 그래프 간선의 수의 2배 진입 차수(In-degree) : 방향 그래프에서 외부에서 오는 간선의 수 진출 차수(Out-degree) : 방향 그래프..