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

2021-07-03 05:40:13 字數 526 閱讀 1594

題目:輸入乙個整數陣列 判斷該陣列是不是某二叉搜尋樹的後續遍歷結果 如果是則返回true 否咋返回false 假設輸入數字的任意兩個數字都互不相同

後序遍歷是左->右->根       左《根《右

陣列最後乙個值t為根結點的值

陣列中小於t的為樹的左孩子 之後的應當為右孩子 且所有的右孩子大於根t 若存在不大於t的值 則表明不是二叉搜尋樹的後序遍歷順序

然後遞迴判斷左孩子和右孩子是否為二叉搜尋樹 

遞迴遍歷結束條件是 遍歷到葉節點~

#include using namespace std;

//struct binarytreenode

//;bool ispost(int *a,int n)

return ispost(a,j)&&ispost(a+j,n-1-j);

}int main()

{ int n;

cin>>n;

int *a=new int[n];

for(int i=0;i>a[i];

cout<

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

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

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

題目 輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷結果。如果是則返回true,否則返回false。思路 在後序遍歷得到的序列中,最後乙個數字是輸的根節點的值。陣列前面的數字可以分為兩部分 第一部分是左子樹節點的值,它們都比根節點的值小 第二部分是右子樹節點的值,它們都比根節點的值大。如此...

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

輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍public class solution int i 0 for isequence sequence.length 1 int j i for j0 if jsequence end 1 int j i for jstart left hel...