kjp0411 님의 블로그

트리 - 트리 알아보기, 트라이 본문

Coding Test/Python

트리 - 트리 알아보기, 트라이

kjp0411 2025. 9. 30. 17:24

트리는 노드와 엣지로 연결된 그래프의 특수한 형태입니다.

 

트리의 특징

  • 순환 구조(사이클)를 지니지 있지 않고, 1개의 루트 노드가 존재합니다.
  • 루트 노드를 제외한 노드는 단 1개의 부모 노드를 갖습니다.
  • 트리의 부분 트리 역시 트리의 모든 특징을 따릅니다.
구성 요소 설명
노드 데이터의 index와 value를 표현하는 요소
엣지 노드와 노드의 연결 관계를 나타내는 선
루트 노드 트리에서 가장 상위에 존재하는 노드
부모 노드 두 노드 사이의 관계에서 상위 노드에 해당하는 노드
자식 노드 두 노드 사이의 관계에서 하위 노드에 해당하는 노드
리프 노드 트리에서 가장 하위에 존재하는 노드(자식 노드가 없는 노드)
서브 트리 전체 트리에 속한 작은 노드 

 

트라이는 문자열 검색을 빠르게 실행할 수 있도록 설계한 트리 형태의 자료구조입니다.

 

트라이의 핵심 이론

트라이는 일반적으로 단어들을 사전 형태로 생성한 후 트리의 부모 자식 노드 관계를 이용해 검색을 수행합니다.

 

트라이의 특징

  • N진 트리: 문자 종류의 개수에 따라 N이 결정 된다.
  • (예를 들어 알파벳은 26개의 문자로 이루어져 있으므로 26진 트리로 구성된다.)
  • 루트 노드는 항상 빈 문자열을 뜻하는 공백 상태를 유지한다.

 

'Coding Test > Python' 카테고리의 다른 글

트리 - 세그먼트 트리  (0) 2025.10.01
트리 - 이진 트리  (0) 2025.10.01
그래프 - 최소 신장 트리  (0) 2025.09.29
그래프 - 벨만 포드, 플로이드 워셜  (0) 2025.09.25
그래프 - 다익스트라  (0) 2025.09.24