문자열을 저장하고 효율적으로 탐색하기 위한 트리 형태의 자료구조
![]()
트리구조로 간선은 이전 정점으로 새롭게 추가되는 문자 정보를 가지고 있다.
정점은 이전 정점으로부터 더해진 문자열 정보를 가지고 있다.
이런식으로 미리 정의한 문자열로 자동완성을 구현할 수 있다.
def Node:
def __init__(self, value = ""):
self.value = value
self.children = dict()
def Trie(self):
def __init__(self, string):
self.root = Node()
def insert(self, string):
cur = self.root
for char in string:
if char not in cur.children:
cur.children[char] = Node(cur.value + char)
cur = cur.children[char]
def has(self, string):
cur = self.root
for char in string:
if char not in cur.children:
return False
cur = cur.children[char]
return True