[학습 점적 - 데이터 구조 - 이 진 트 리] 서열 이 이 진 트 리 의 뒷 순 서 를 찾 는 지 여부 입 니 다.

975 단어
#include <stdio.h>
#include <stdlib.h>

bool isSequence(int *array, int start,int end) {
    if(start > end ){
        return false;
    }
    if(start == end){
        return true;
    }
    int root = array[end-1];
    int i = start;
    while( array[i] < root && i < end-1){//           position,       
        i++;
    }
    int position = i;
    while( i<end-1) {
        if(array[i] < root) { //   position        ,        
            return false;
        }
        i++;
    }
    //               ,          
    bool left = true;
    left = isSequence(array,start,position);
    bool right = true;
    right = isSequence(array,position,end-1);
    return (left && right);
}
main(){
    int a[7] = {5,7,6,9,11,10,8};
    int b[] = {7,4,6,5};
    printf("%d
",isSequence(a,0,6)); printf("%d
",isSequence(b,0,3)); system("pause"); return 0; }

좋은 웹페이지 즐겨찾기