어떻게 이진 트리 이진 검색 트리 여부를 확인하는 방법

거짓은 나무가 이진 검색 트리 여부를 확인하는 전체 이진 트리를 인쇄 할 수 주어진 다음 사실이 아닌 단어를 인쇄

설명 :
. 빈 트리 또는 다음과 같은 특성을 갖는 이진 트리 중 하나 인 이진 검색 트리 (이진 검색 트리) : 자사의 왼쪽 하위 트리가 왼쪽 하위 트리의 다음 값이 비어 있지 않은 경우,보다 작은 모든 노드 루트 노드의 값, 오른쪽 서브 트리가, 다음 오른쪽 서브 트리를 비어 있지 않은 경우, 모든 루트의 값보다 큰 노드, 그 왼쪽과 오른쪽 하위 트리 이진 검색 트리입니다 .
나. 완전 이진 트리가, 자식 노드없이 마지막을 제외하고, 각 계층의 모든 노드는 이진 트리의 두 자식 노드를 가지고

다. 트리 노드 이하 10,000, 노드는보다 널이 아닌 정수보다가, 또는 빈 트리 노드 입력 미만 65536 0 None입니다 비우

생각 : 주요 이진 검색 트리 탐색 순서는 모든 시간 순서 순회 결정될 수있다, 오름차순이다.

코드 입력과 출력은 스스로를 시도 할 수 없습니다

전면 이진 트리의 전순 소개 : https://www.cnblogs.com/nlw-blog/p/12405985.html

수입 java.util.Stack의;
클래스 의 TreeNode {
     INT 값; 
    TreeNode를 왼쪽; 
    TreeNode를 오른쪽; 
    TreeNode를 ( INT의 값) {
          .value = 값; 
    } 
} 
공용  클래스 트리 {
     공공  정적  부울 isBST (TreeNode를 노드) { 
        스택 <TreeNode를> 스택 = 새로운 스택 <TreeNode를> ();
        INT 입술 = 는 Integer.MIN_VALUE;
        동안 (노드! = null의 ||! stack.isEmpty ()) {
             동안(! = 노드 는 null ) { 
                stack.push (노드); 
                노드 = node.left; 
            } 
            경우 (! stack.isEmpty ()) {
                 INT의 데이터 = stack.pop () 값.;
                경우 (데이터 < 입술) {
                     반환  거짓 ; 
                } 다른 { 
                    입술 = 데이터; 
                    노드 = node.right; 
                } 
            } 
        } 
    } 
    공공  정적  무효메인 (문자열 []에 args) { 
    } 
}

 

추천

출처www.cnblogs.com/nlw-blog/p/12406114.html