二叉搜素樹的後續遍歷

2021-09-02 04:21:13 字數 941 閱讀 3709

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

輸入:每個測試案例包括2行:

第一行為1個整數n(1<=n<=10000),表示陣列的長度。

第二行包含n個整數,表示這個陣列,陣列中的數的範圍是[0,100000000]。

輸出:對應每個測試案例,如果輸入陣列是某二叉搜尋樹的後序遍歷的結果輸出yes,否則輸出no。

樣例輸入:

7
5 7 6 9 11 10 8
4
7 4 6 5

樣例輸出:

yes
no

#include#includebool verifysquenceofbst(int sequence ,int length)

{ if(sequence==null||length<0)

return false;

//二叉搜尋樹的root是序列最後乙個值

int root = sequence[length-1];

//在二叉搜素樹中左子樹的節點小於根節點

int i=0;

for(;iroot)

break;

//在二叉搜素樹中右子樹的節點大於根節點

int j=i;

for(;j0)

left=verifysquenceofbst(sequence,i);

//判斷右子樹是不是二叉搜素樹

bool right=true;

if(i

結果:

二叉搜尋樹的後續遍歷

二叉搜尋樹的後續遍歷 題目描述 輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。bst後續遍歷 class solution 判斷後一半的問題,如果還有小於根的,則return false for int j ...

二叉搜尋樹的後續遍歷

輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。coding utf 8 class solution def verifysquenceofbst self,sequence write code here ...

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

輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷結果,假設輸入的陣列的任意兩個數字都互不相同 author q.yuan public class judgepostorder leftend 判斷左子樹的值是否都小於根節點的值 for int i low i leftend i 判斷右子樹...