判斷整數序列是不是二元查詢樹的後序遍歷結果

2021-06-21 20:08:31 字數 670 閱讀 7037

題目:輸入乙個整數陣列,判斷該陣列是不是某二元查詢樹的後序遍歷的結果。如果是返回true,否則返回false。

例如輸入5、7、6、9、11、10、8,由於這一整數序列是如下樹的後序遍歷結果:8/\

610/ \

/ \57

9 11

因此返回true。

如果輸入7、4、6、5,沒有哪棵樹的後序遍歷的結果是這個序列,因此返回false。

思路:判定依據為,後序遍歷的結果中,左子樹的所有節點值均小於父節點,且右子樹均大於父節點。之後遞迴呼叫。

做法:陣列最後一位是父節點,則應找出左右子樹的交界位置,從陣列0處開始,一直迴圈直到遇到大於父節點的位置結束,記為middle,之後繼續從此位置向後,須保證之後的所有數字均大於根節點。**如下:

public class ispostorder {

/*** 判斷陣列是否後序遍歷結果

* @param a

* 陣列a

* @param low

* 待判定子陣列的起始位

* @param high

* 待判定子陣列的最高位

* @return

*/public boolean ispostorder(int a, int low, int high){

int i=low;

while(a[i]

判斷整數序列是不是二元查詢樹的後序遍歷結果

二叉查詢樹 binary search tree 或者是一棵空樹,或者是具有下列性質的二叉樹 若它的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值 若它的右子樹不空,則右子樹上所有結點的值均大於它的根結點的值 它的左 右子樹也分別為二叉排序樹。post order 先訪問左節點,再訪問右節點...

判斷整數序列是不是二元查詢樹的後序遍歷結果

第9題 判斷整數序列是不是二元查詢樹的後序遍歷結果 題目 輸入乙個整數陣列,判斷該陣列是不是某二元查詢樹的後序遍歷的結果。如果是返回true,否則返回false。例如輸入5 7 6 9 11 10 8,由於這一整數序列是如下樹的後序遍歷結果 8 6 10 5 7 9 11 因此返回true。如果輸入...

判斷整數序列是不是二元查詢樹的後序遍歷結果

二叉樹 遍歷 一 題目 感謝 提供的題目 判斷整數序列是不是二元查詢樹的後序遍歷結果 輸入乙個整數陣列,判斷該陣列是不是某二元查詢樹的後序遍歷的結果。如果是返回true,否則返回false。例如 輸入5 7 6 9 11 10 8,由於這一整數序列是如下樹的後序遍歷結果 8 6 10 5 7 9 1...