二叉搜尋數的後序遍歷

2021-08-18 07:28:58 字數 740 閱讀 5948

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

思路:所謂二叉搜尋數,就是對於所有的節點,節點左邊的子節點都小於該節點,節點右邊的子節點都大於該節點。已知二叉搜尋樹的後序遍歷,則陣列的最後乙個節點為根節點。遍歷陣列找到第乙個比根節點大的下標,則該下標往後應該都是右子樹,也就是說往後應該都比根節點大。根據這一點來對二叉樹進行拆分和遞迴,確保對於每乙個節點滿足上述要求即可。

public

class solution

}return

false;

}public boolean verifysquenceofbst(int sequence,int

from,int to)

}//檢查分界點右邊所有的節點是否滿足二叉搜尋樹的條件,然後遞迴。

return checkright(sequence,index,to-1,root)&&verifysquenceofbst(sequence,from,index-1)&&verifysquenceofbst(sequence,index,to-1);

}return

true;

}public boolean checkright(int array,int

from,int to,int root)

}return

true;

}}

二叉搜尋樹的後序遍歷

二叉搜尋樹的後序遍歷序列中,最後乙個值是根結點,前面比根節點小的是左結點,後面比根結點大的是右結點。include include bool verifysquenceofbst int sequence,int length int root sequence length 1 int i 0 在...

二叉搜尋樹的後序遍歷

描述 輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷。如果是,則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。1 樣例輸入 5 7 6 9 11 10 8 1 樣例輸出 yes 2 樣例輸入 7 4 6 5 2 樣例輸出 no 首先要知道二叉搜尋樹的定義 或者是一棵空樹...

二叉搜尋樹的後序遍歷

輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。思路採用遞迴方法 include include includeusing namespace std bool core vectorsequence,int ...