判斷陣列是否是BST的後序遍歷結果

2021-09-25 11:24:21 字數 540 閱讀 7016

輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。

受之前根據前序後序遍歷的題目影響,知道用序號標記來判斷左子樹,右子樹的陣列。

這裡在遞迴方法裡面 for迴圈外定義乙個i; 這樣可以在兩個for迴圈都使用同乙個i。

可以避免新定義乙個變數來分界 左子樹和右子樹序列

當不等於時候 break 跳出迴圈

在另外乙個for迴圈裡面繼續使用i

如果滿足條件 則返回遞迴的條件,如果不滿足則返回false

public class solution 

public boolean istreebst(int sequence,int start,int end )

for (int j = i; j < end; j++)

return istreebst(sequence, start, i-1) && istreebst(sequence, i, end-1);

}}

判斷乙個資料序列是否是BST後序遍歷的結果

基本知識 1 bst 二叉排序樹,即父節點大於左子節點,小於等於右子節點 2 後序遍歷 先遍歷左子樹,再遍歷右子樹,最後遍歷根節點 基本思想 後續遍歷得到的陣列的最後乙個元素為根節點,前一部分為左子樹,後一部分為右子樹 前一部分中的元素都小於root 根 後一部分中的元素都大於root 根 所以可以...

BST的後序遍歷序列

boolpp const vector int vi,int start,int end bool verifysquenceofbst vector int sequence 思路 後序遍歷的最後乙個元素一定是樹根。除樹根外,前面的元素可以分為兩部分,左子樹的值和右子樹的值。左子樹的值都小於根,右...

判斷陣列是否是二叉搜尋樹的後序遍歷

給乙個序列,判斷該序列是否是二叉搜尋樹的後序遍歷結果。功能測試 序列對應一顆二叉樹,序列對應一顆只含左孩子 右孩子 的二叉樹,序列只含乙個根節點。特殊值測試 空指標 include include include includeusing namespace std bool doesbinarys...