이 문서는 Google Cloud Translation API를 사용해 자동 번역되었습니다.
어떤 문서는 원문을 읽는게 나을 수도 있습니다.
컴퓨터 과학에서 디지털 트리 또는 접두사 트리라고도 하는 트라이는 검색 트리의 일종으로 키가 일반적으로 문자열인 동적 집합 또는 연관 배열을 저장하는 데 사용되는 정렬된 트리 데이터 구조입니다. 이진 검색 트리와 달리 트리의 어떤 노드도 해당 노드와 관련된 키를 저장하지 않습니다. 대신 트리에서 해당 위치는 연결된 키를 정의합니다. 노드의 모든 자손은 해당 노드와 연결된 문자열의 공통 접두사를 가지며 루트는 빈 문자열과 연결됩니다. 값이 반드시 모든 노드와 연관되는 것은 아닙니다. 오히려 값은 리프 및 관심 키에 해당하는 일부 내부 노드와 연결되는 경향이 있습니다.
표시된 예에서 키는 노드 및 그 아래의 값에 나열됩니다. 각각의 완전한 영어 단어에는 연관된 임의의 정수 값이 있습니다. 트리가 루트에서 특정 키로 순회되면 순회하는 가장자리의 문자를 연결하여 관련 값을 검색합니다.
트라이는 나무 모양의 결정론적 유한 오토마톤으로 볼 수 있습니다. 결정론적 유한 오토마톤은 상태 Q 집합과 입력 기호 집합 Σ로 구성되며, 여기서 Σ는 트리의 알파벳입니다. 자동 장치에는 시작 상태 s, 최종 상태 세트 F, 각 상태 및 입력 기호를 새 상태로 매핑하는 전환 함수가 있습니다. 트라이에서 최종 상태 집합은 일반적으로 모든 문자열 집합입니다.
trie에 대한 전이 함수는 다음과 같이 정의됩니다. 상태 s와 입력 기호 a가 주어지면 기호 a로 레이블이 지정된 가장자리를 따라 상태 s에서 하강하여 새 상태를 얻습니다. 기호 a로 레이블이 지정된 모서리가 없으면 새 상태는 실패 상태입니다. 트라이에서 실패 상태는 일반적으로 루트입니다.
트리는 각 노드가 최대 N개의 자식을 갖는 N-ary 트리의 특별한 경우로 볼 수 있습니다. 여기서 N은 알파벳의 기호 수입니다. 루트에서 리프까지의 경로는 해당 리프와 관련된 문자열의 접두사를 설명합니다.
트리는 N항 트리, 기수 트리, 디지털 검색 트리, 디지털 트리 또는 패트리샤 트리로 구현될 수 있습니다.
N항 트리는 각 노드에 N개 이하의 자식이 있는 루트 트리입니다. 알파벳에 N개의 기호가 있는 트리는 각 노드가 최대 N개의 자식을 갖는 N항 트리로 볼 수 있습니다.
표시된 예에서 키는 노드에 나열되고 값은 그 아래에 있습니다. 각각의 완전한 영어 단어에는 연관된 임의의 정수 값이 있습니다. 트리가 루트에서 특정 키로 순회되면 순회하는 가장자리의 문자를 연결하여 관련 값을 검색합니다.
트리는 각 노드가 최대 N개의 자식을 갖는 N-ary 트리의 특별한 경우로 볼 수 있습니다. 여기서 N은 알파벳의 기호 수입니다. 루트에서 리프까지의 경로는 해당 리프와 관련된 문자열의 접두사를 설명합니다.
기수 트리 또는 압축 트리는 키가 문자열인 일종의 검색 트리입니다. 트리는 연속된 키 간의 차이만 저장하여 압축됩니다. 예를 들어 키가 "Hello", "World" 및 "Hell"인 경우 루트 노드에는 문자 "H" 및 "W"가 있고 루트의 첫 번째 자식에는 문자 "o"가 있습니다. ". 루트의 두 번째 자식에는 문자 "r"과 "l"이 있습니다.
표시된 예에서 키는 노드에 나열되고 값은 그 아래에 있습니다. 각각의 완전한 영어 단어에는 연관된 임의의 정수 값이 있습니다. 트리가 루트에서 특정 키로 순회되면 순회하는 가장자리의 문자를 연결하여 관련 값을 검색합니다.
기수 트리는 각 노드가 최대 N개의 자식을 갖는 N항 트리의 특수한 경우로 볼 수 있습니다. 여기서 N은 알파벳의 기호 수입니다. 루트에서 리프까지의 경로는 해당 리프와 관련된 문자열의 접두사를 설명합니다.
디지털 검색 트리 또는 디지털 트리는 키가 문자열인 일종의 검색 트리입니다. 트리는 연속된 키 간의 차이만 저장하여 압축됩니다. 예를 들어 키가 "Hello", "World" 및 "Hell"인 경우 루트 노드에는 문자 "H" 및 "W"가 있고 루트의 첫 번째 자식에는 문자 "o"가 있습니다. ". 루트의 두 번째 자식에는 문자 "r"과 "l"이 있습니다.
표시된 예에서 키는 노드에 나열되고 값은 그 아래에 있습니다. 각각의 완전한 영어 단어에는 연관된 임의의 정수 값이 있습니다. 트리가 루트에서 특정 키로 순회되면 순회하는 가장자리의 문자를 연결하여 관련 값을 검색합니다.
디지털 트리는 각 노드가 최대 N개의 자식을 갖는 N진 트리의 특별한 경우로 볼 수 있습니다. 여기서 N은 알파벳의 기호 수입니다. 루트에서 리프까지의 경로는 해당 리프와 관련된 문자열의 접두사를 설명합니다.
Patricia 트리 또는 기수 트리는 키가 문자열인 일종의 검색 트리입니다. 트리는 연속된 키 간의 차이만 저장하여 압축됩니다. 예를 들어 키가 "Hello", "World" 및 "Hell"인 경우 루트 노드에는 문자 "H" 및 "W"가 있고 루트의 첫 번째 자식에는 문자 "o"가 있습니다. ". 루트의 두 번째 자식에는 문자 "r"과 "l"이 있습니다.
표시된 예에서 키는 노드에 나열되고 값은 그 아래에 있습니다. 각각의 완전한 영어 단어에는 연관된 임의의 정수 값이 있습니다. 트리가 루트에서 특정 키로 순회되면 순회하는 가장자리의 문자를 연결하여 관련 값을 검색합니다.
Patricia 트리는 각 노드가 최대 N개의 자식을 갖는 N항 트리의 특별한 경우로 볼 수 있습니다. 여기서 N은 알파벳의 기호 수입니다. 루트에서 리프까지의 경로는 해당 리프와 관련된 문자열의 접두사를 설명합니다.
시도는 다음과 같은 많은 응용 프로그램에서 사용됩니다.
압축: 동일한 노드에 공통 접두사가 있는 문자열을 저장하여 문자열을 압축하는 데 시도를 사용할 수 있습니다. 예를 들어 문자열 "aaaabbbbccccdddd"는 "4a4b4c4d"로 압축될 수 있습니다.
맞춤법 교정: 시도는 단어 사전을 저장한 다음 주어진 단어의 철자가 올바른지 확인하는 데 사용할 수 있습니다.
IP 주소 조회: 시도는 IP 주소 목록을 저장한 다음 지정된 호스트의 IP 주소를 조회하는 데 사용할 수 있습니다.
DNA 염기서열 분석: 시도는 DNA 염기서열을 저장한 다음 주어진 쿼리에 대해 일치하는 DNA 염기서열을 찾는 데 사용할 수 있습니다.