1
밸런스 된/완전한 이진 트리를 생성하기 위해 바인딩되는 정수의 입력 패턴이 있습니까?균형 이진 검색 트리를 생성하기위한 입력
밸런스 된/완전한 이진 트리를 생성하기 위해 바인딩되는 정수의 입력 패턴이 있습니까?균형 이진 검색 트리를 생성하기위한 입력
길이가 n
인 a
- 정렬 된 입력 배열을 예로 들어 보겠습니다. 그런 다음 a[mid]
으로 BST를 시작하십시오. mid
- 중간 요소 (n/2
). 일단 우리가 a[mid]
을 BST에 푸시하면 우리 배열은 두 개의 새로운 정렬 된 배열 : [0 : mid-1]과 [mid +1, n-1]로 나뉘어집니다.
둘 다 동일한 논리를 사용하십시오 (하위 배열이 비어 있지 않은 경우). 각 하위 배열에 대해 새 mid
요소를 선택하고 BST로 푸시합니다. 그러면 4 개의 새로운 배열이 생성됩니다.
모든 하위 배열에 대해이 프로세스를 완료하면 해당 입력에 대해 가장 균형 잡힌 BST를 얻을 수 있습니다.
그래, 그렇다고해서 재귀 적으로 노드를 추가하도록 BST의 삽입 기능을 수정해야합니다. 데이터 구조 구현을 변경하지 않고 균형 잡힌 BST를 산출 할 입력 시퀀스를 찾고있었습니다. –
@HaseebJaved 삽입 기능을 변경해야한다는 것은 아닙니다. 정렬 된 배열에서 BST를 작성하는 함수를 추가하기 만하면됩니다. 그 후 다른 요소를 추가하려면 일반 삽입 기능을 사용하십시오. –
@ A. 충분한 공정한. 하지만 BST에 삽입 할 때 균형 잡힌 BST를 생성 할 수있는 시퀀스 패턴이 없다는 것을 의미합니까? 즉, 도우미 기능을 사용하지 않고? –