알고리즘 및 자료구조

[자료구조] Trie Tree(트라이 트리)

Daon(다온) 2021. 10. 3. 13:59

우선 Trie Tree를 설명하기 전에  Binary Search Tree(이진탐색 트리)를 이용해 문자열을 사용한다 가정하면 기본 이진트리의 검색 시간인 O(log n)과 더불어 각 노드에 들어 있는 문자열(문자열의 최대길이를 M이라 가정)을 찾는 시간 O(M log n)의 시간이 걸린다. 

그래서 이 문제를 해결하기 위해 사용하는 것이 Trie tree이다.

 

Trie Tree

이 트리의 경우 node에 문자열을 한자씩만 저장한다.

문자열이 다 같은 문자로 시작하는게 아니기에 Root node의 경우 비워준다. 

모든 노드는 최대 26개의 노드를 허용한다. (알파벳이 26개) 단, 대, 소문자 구별시 더 길어진다. 

시간 복잡도는 O(M)이된다. (M은 문자열의 최대 길이)

 

 

참고자료

 

https://www.youtube.com/watch?v=TohdsR58i3Q&list=PLjSkJdbr_gFY8VgactUs6_Jc9Ke8cPzZP&index=4