검색 트리 란 무엇입니까?
검색 트리는 데이터 목록을 포함하고 구성하기 위해 컴퓨터 프로그래밍에 사용되는 데이터 구조입니다 . 각 검색 트리는 순서가 지정된 노드 세트로 구성됩니다 . 이 노드는 0 개 이상의 다른 노드에 연결할 수 있습니다. individual nodes 개별 노드에는 다른 노드에 대한 링크뿐만 아니라 일부 데이터가 포함됩니다. 트리의 노드에 포함 된 데이터는 효율적인 알고리즘을 검색 할 수 있도록 몇 가지 방식으로 정렬됩니다. nodes 노드를 쉽게 삽입하고 제거하십시오.
검색 트리의 노드는 4 가지 중요한 용어로 설명됩니다. 트리의 상단, 첫 번째 노드가있는 위치, 를 루트라고합니다. If a 노드에는 하위 링크 -노드, 노드를 부모라고합니다. 부모 아래에있는 노드를 자식이라고하며, 자식 노드가없는 노드를 leaf 잎이라고합니다. 루트 노드는 부모가 없기 때문에 식별되며, 리프 노드는 자식이 없습니다.
프로그램은 특정 노드에서 시작하여 check 조건부 검사를 수행 한 다음 필요한 데이터가없는 경우 다음 논리 노드로 이동하여 데이터를 검색하는 트리를 통해 이동할 수 있습니다. 사용 된 데이터 구조에 따라 , 이 검색은 가변 시간이 걸릴 수 있습니다 . 노드를 추가 및 제거하는 과정에서 검색 트리가 구성되면 검색이 매우 빠를 수 있습니다 . 나무가 조립 된 경우 조립 parents 무작위로, 는 분류되지 않았거나 여러 부모를 허용합니다. 검색에 시간이 오래 걸릴 수 있습니다.
검색 트리 사용에 영향을 미치는 한 가지 요소는 균형 문제입니다 . 균형 트리는 루트 노드의 오른쪽 및 왼쪽 하위 노드에 동일한 깊이의 하위 노드가 포함되거나 단일 노드 수 내에있는 트리입니다 깊이 a 나무는 나무의 가장 낮은 잎에서 뿌리까지의 노드 수입니다. 불균형 나무는 한쪽에만 모든 노드를 갖거나 모든 노드를 가질 수 있습니다 가지가없는 선형으로 배열 된 노드. 나무의 깊이가 증가하면 can search 검색 알고리즘의 속도가 급격히 떨어질 수 있습니다.
자체 밸런싱으로 설명되는 특정 유형의 검색 트리가 있습니다. 이 트리는 트리 회전과 같은 작업을 사용하여 균형을 유지하고 동안 잎의 데이터 순서를 유지합니다. 트리를 회전하면 노드를 추가 및 제거 할 때 프로그램 속도가 느려질 수 있습니다. 이는 데이터를 검색 할 수있는 속도에 따라 계산됩니다.
검색 트리에는 여러 유형이 있지만 가장 일반적인 트리 데이터 구조는 이진 검색 트리입니다.이 데이터 유형은 각각 0에서 2 개의 자식 노드가있는 노드로 구성됩니다. tree 나무의 모든 잎은 왼쪽에서 오른쪽으로 오름차순으로 정렬됩니다. 보유한 데이터에 따라 값이 많은 알고리즘 can binary 주문 데이터를 매우 쉽게 만듭니다.
검색 트리 노드에 대한 단일 표준 구현은 없습니다. 노드는 다양한 데이터 구조로 표현 될 수 있습니다. 배열의 배열을 사용할 수 있으며, 연결된 목록을 곱할 수 있습니다. 검색 트리는 프로그램이 요구하는 필요한 작업의 완료를 지원하도록 설계된 사용자 정의 데이터 구조를 사용합니다. 일부 표준 프로그래밍 라이브러리 자체 검색 트리의 내부 구현을 포함합니다.