> 일반적인 문제 > 이진 검색 트리의 용도는 무엇입니까?

이진 검색 트리의 용도는 무엇입니까?

藏色散人
풀어 주다: 2020-06-29 10:07:17
원래의
3722명이 탐색했습니다.

이진 검색 트리는 주로 검색 및 동적 정렬에 사용됩니다. 이진 트리의 "삽입/질의/삭제"의 시간 복잡도는 "O(log(n))"이지만 실제 사용에서는 일반적으로 그렇게 빠르지 않습니다. 게재 신청서에 사용되는 '중간'은 일반적으로 그다지 정확하지 않기 때문입니다.

이진 검색 트리의 용도는 무엇입니까?

이진 검색 트리의 역할

제가 아는 주요 역할은 검색과 동적 정렬입니다. 이진 트리의 삽입/질의/삭제의 시간 복잡도는 O(log(n))입니다. 그러나 삽입 순서에 사용되는 중간은 일반적으로 그다지 정확하지 않기 때문에 실제 사용에서는 그리 빠르지 않습니다. 특히 데이터 삽입 순서가 정렬되어 있거나 기본적으로 정렬되어 있는 경우 최악의 경우 이진 트리의 불균형이 심각해집니다. 이 경우 연결 목록과 동일한 수준으로 떨어집니다.

이진 정렬 트리의 주요 작업은 다음과 같습니다.

1. 검색: 키가 존재하는지 재귀적으로 검색합니다.

2. 삽입: 원래 트리에 키가 없으면 키를 삽입하면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

3. 구성: 루프 삽입 작업.

4. 삭제: (1) 리프 노드: 원본 트리에 영향을 주지 않고 직접 삭제합니다.

(2) 왼쪽 또는 오른쪽 하위 트리가 있는 노드만: 노드가 삭제된 후 전체 왼쪽 하위 트리 또는 오른쪽 하위 트리를 삭제된 노드 위치로 이동하면 아들이 아버지의 유산을 상속하게 됩니다.

(3) 왼쪽 및 오른쪽 하위 트리가 모두 있는 노드: 삭제해야 할 노드 p의 직접 전임자 또는 직속 후임자 s를 찾아 노드 p를 s로 교체한 다음 노드 s를 삭제합니다.

위 내용은 이진 검색 트리의 용도는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿