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

2022-06-30 08:33:09 字數 438 閱讀 4924

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

分析:採用遞迴的思想,先找出根節點,左子樹元素都必須比根節點小,右子樹節點都比根節點大,否則返回false.

得到子樹(子串行)的兩種方法: 

①用下標把陣列 邏輯分為幾個子陣列(這裡採用的是這種)

②用工具類arrays把陣列分割

public class solution 

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

for(int j=i;j//遞迴

return istreeofbst(sequence,0,i-1)&&istreeofbst(sequence,i,end-1);

}}

二叉搜尋樹後序遍歷序列判斷

問題 輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。解析 1 所謂二叉搜尋樹,是指空樹,或其左子樹的元素都小於根元素,右子樹的元素都大於根元素,且其左子樹和右 子樹都是二叉搜尋樹。2 二叉搜尋樹後序遍歷序列有...

二叉搜尋樹的後序遍歷判斷

輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。之前對於二叉搜尋樹,只知道中序遍歷是遞增的,今天做到這道題目,要求判斷陣列是不是二叉搜尋樹後序遍歷的結果,一開始有點懵,後來在紙上畫畫,感覺很像遞迴的感覺,有一種...

二叉搜尋樹的後序遍歷序列

題目 輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是返回true,否則返回false。假設輸入的陣列的任意兩個數字都不相同。解答 二叉搜尋樹後序遍歷最後訪問的是根節點,根據根節點將陣列分成兩部分,前面一部分即左子樹值小於根節點值,後面一部分即右子樹的值大於根節點 再遞迴的檢查...