[CS50] 자료구조 - 트라이CSE/CS 기초2024. 6. 18. 20:00
Table of Contents
트라이(Trie) 데이터 구조
‘트라이(Trie)’는 기본적으로 ‘트리’ 형태의 자료 구조이다. 특이한 점은 각 노드가 ‘배열’로 이루어져 있다는 것이다.
예를 들어 영어 알파벳으로 이루어진 문자열 값을 저장한다고 한다면 각 노드는 a부터 z까지의 값을 가지는 배열이 된다.
배열의 각 요소, 즉 알파벳은 다음 층의 노드(a-z 배열)를 가리킨다.
아래 그림과 같이 "Hermione", "Harry", "Hagrid" 세 문자열을 트라이에 저장해보겠다.
루트 노드를 시작으로 각 화살표가 가리키는 알파벳을 따라가며 노드를 이어주면 된다.
트라이에서 값을 검색하는 데 걸리는 시간은 ‘문자열의 길이’에 의해 한정된다.
단순히 문자열의 각 문자를 보며 트리를 탐색해 나가기만 하면 되기 때문이다.
일반적인 영어 이름의 길이를 n이라고 했을 때 검색 시간은 O(n)이지만 대부분의 이름은 그리 크지 않은 상수값(예: 20자 이내)이기 때문에 O(1)이나 마찬가지라고 볼 수 있다.
References
728x90
반응형
'CSE > CS 기초' 카테고리의 다른 글
[컴퓨터학개론] AI시대의 컴퓨터 개론 - 내용 점검 문제 2장 (0) | 2025.01.01 |
---|---|
[컴퓨터학개론] AI시대의 컴퓨터 개론 - 내용 점검 문제 1장 (2) | 2025.01.01 |
[CS50] 자료구조 - 해시 테이블 (0) | 2024.06.18 |
[CS50] 자료구조 - 연결 리스트 (0) | 2024.06.18 |
[CS50] 자료구조 - 배열의 크기 조정하기 (0) | 2024.06.18 |
@junyeokk :: 나무보다 숲을
컴퓨터 전공 관련, 프론트엔드 개발 지식들을 공유합니다. React, Javascript를 다룰 줄 알며 요즘에는 Typescript에도 관심이 생겨 공부하고 있습니다. 서로 소통하면서 프로젝트 하는 것을 즐기며 많은 대외활동으로 개발 능력과 소프트 스킬을 다듬어나가고 있습니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!