数据结构与算法-- 二叉树后续遍历序列校验
生活随笔
收集整理的這篇文章主要介紹了
数据结构与算法-- 二叉树后续遍历序列校验
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
二叉樹后續遍歷序列校驗
-
題目:輸入一個整數數組,判斷改數組是否是某個二叉搜索樹的后續遍歷結果,如果是返回true否則false,假設輸入數組的任意兩個數字不相同。
-
例如輸入{5,7,6,9,11,10,8}則返回true,因為這個整數序列是如下圖二叉搜索樹的后續遍歷結果:
-
如果輸入{7,4,6,5}沒有哪個二叉搜索樹后續遍歷結果是這個序列。
-
我們必須先知道二叉搜索樹的一些基本特性,在之前的文章:二叉查找樹實現原理對二叉搜索樹進行的詳細的說明,已經案例分析,在二叉搜索樹中如下兩個性質:
- 對于樹中每個節點X,左子樹中所有項小于X中的項
- 而右子樹中的所有元素都大于X中的項目
-
分析:
- 因為是后續遍歷,因此根節點在末尾,左移8 是根
- 數組分兩部分,前面左子樹節點比如比根節點小
- 后面右子樹節點必然比根節點大
- 第二個7,4,6,5 ,是中間小兩邊大不存在這種情況
- 判斷完左右子樹都符合要求,則分別將左右子樹當成完整的樹依次執行以上步驟,遞歸實現。
- 如上分析有如下實現:
上一篇:數據結構與算法-- 廣度優先打印二叉樹
下一篇:數據結構與算法-- 二叉樹中和為某一值的路徑
總結
以上是生活随笔為你收集整理的数据结构与算法-- 二叉树后续遍历序列校验的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 酷屏资源怎么下载和使用
- 下一篇: 数据结构与索引-- B+树索引