트라이 자료구조는 검색에 최적화된 자료구조이다
자식 노드가 여러 개인 트리 형태로 구성된다고 이해하면 된다.
https://leetcode.com/problems/implement-trie-prefix-tree/
위의 문제를 기준으로 구현했다.
class TrieNode:
def __init__(self):
self.word = False
self.children = collections.defaultdict(TrieNode)
class Trie:
def __init__(self):
self.root = TrieNode()
def insert(self, word: str) -> None:
node = self.root
for char in word:
if char not in node.children:
node.children[char] = TrieNode()
node = node.children[char]
node.word = True
def search(self, word: str) -> bool:
node = self.root
for char in word:
if char not in node.children:
return False
node = node.children[char]
return node.word
def startsWith(self, prefix: str) -> bool:
node = self.root
for char in prefix:
if char not in node.children:
return False
node = node.children[char]
return True
'Computer Science > Data Structure' 카테고리의 다른 글
Python 힙 구현 (0) | 2022.04.23 |
---|---|
자료구조, 자료형, 추상 자료형 (0) | 2022.03.25 |
이진 탐색 트리 (Binary Search Tree) - 탐색, 삽입, 삭제 (0) | 2022.01.02 |
이진트리 - 정의와 순회 (0) | 2022.01.01 |
힙 자료구조 - insert 연산 (0) | 2022.01.01 |
댓글