二元查找树后续遍历特点: 最后一个元素,将数组从[0...N-2]划分为两部分,前一部分所有元素比最后这个元素要小,后面的所有元素比这个元素都要大,利用递归不难写出code /* * Copyright (c) 2011 alexingcool. All Rights Reserved. */ #include <iostream> using namespace std; int array[] = {5, 7, 6, 9, 11, 10, 8}; const int size = sizeof array / sizeof *array; bool isPostOrder(int (&array)[size], int start, int end) { if(start >= end) return true; int pivot = array[end]; int i = start, j = end - 1; while(i <= end - 1 && array[i] <= pivot) i++; while(j > 0 && array[j] >= pivot) j--; if(i != j + 1) return false; else return isPostOrder(array, start, j) && isPostOrder(array, i, end - 1); } void main() { if(isPostOrder(array, 0 ,size - 1)) cout << "is post order" << endl; else cout << "not post order" << endl; }