Learning
토픽 66 / 66·분산/저장소 자료구조

Radix Tree (Patricia Trie)

Radix Tree (Patricia Trie)

Trie의 변형으로 단일 자식만 가진 노드를 압축하여 경로 압축(Path Compression)을 적용한 공간 효율적인 문자열 자료구조

목적: 공간 효율, 문자열 검색, Longest Prefix Match, IP 라우팅

특징: 경로 압축, 공간 효율, O(k) 연산(k=키 길이), 접두사 검색

경로 압축(Path Compression): 자식이 하나인 연속 노드를 하나로 합침

구조

  • 간선에 단일 문자 대신 문자열(접두사) 저장
  • 분기점에서만 노드 생성
  • 노드 수 = 키 수 + 분기 수

연산

  • 검색: 루트에서 키와 간선 레이블 매칭, O(k)
  • 삽입: 매칭 실패 지점에서 노드 분할, O(k)
  • 삭제: 노드 제거 후 단일 자식 노드 병합, O(k)

Longest Prefix Match: IP 라우팅에서 가장 긴 매칭 접두사 찾기

Linux Radix Tree: 커널의 페이지 캐시 관리, 정수 키 사용

장점: Trie보다 공간 효율, 빠른 Longest Prefix Match, 희소 데이터 효율

단점: 구현 복잡도, 노드 분할/병합 오버헤드, 갱신 비용

적용사례: IP 라우팅 테이블, Linux 커널, 문자열 사전, DNS 조회

비교: Radix Tree(압축/공간효율) vs Trie(비압축/단순) vs 해시(점검색)

연관: Trie, IP 라우팅, Longest Prefix Match, 커널 자료구조