每次while迴圈或者 當前遞迴函式內,
你的 操作物件 要盡可能的
標準某乙個特定的節點展開,
頂過考慮他的 左右孩子結點和父結點,不要再考慮更多。
一定要非常敏感當前操作的
當前操作結點,
當前針對結點
一切操作 圍繞這個結點來展開,
考慮問題時候盡可能只關注這乙個結點,
或者關注的關係結點要盡可能的要少,越少越好。
任何操作及關係的中心都是 這個節點,或者這個結點的關係結點
看其他節點的時候,也是 重點關注 其他節點與當前節點的關係。
看其他節點是 當前節點的 左右子節點或者父節點。
還有任何乙個結點都是 既從屬 又絕對平等的。
當前的任何操作如果可以 對某個節點有某種效果,
那麼對其他任何結點 都有 同樣的效果
二叉樹問題中,關注的 結點越少越容易分析問題。
問題中最多關注乙個分支就好。乙個分支也就 四個節點,
1當前結點
2當前結點的左節點
3當前結點的右節點
4當前節點的父節點
一般能夠 滿足乙個分支的程式,銜接沒有問題的話,那麼別的分支都是可以基本滿足的
為了測試程式的 魯棒性,
可以每次測試乙個乙個結點。
測完再換乙個結點,來測試程式的適應性和考慮不完善的地方。
特別是 測試 各種邊界點。整個測試幾個特殊點後,程式就基本完善了。
如果某些情況 拿乙個結點來看的時候分析有困難,
比如需要考慮這個節點的孩子結點,
但是這個結點孩子節點為null,這時候 可以臨時 換另乙個符合 要求的結點去思考。
要很明確,
除了if條件排斥的結點之外,也就是不滿足if條件的結點不能 滿足程式,
其餘的任何乙個結點都必定是能夠滿足程式的。
二叉樹遞迴遍歷及其相關操作
二叉樹的基本結構是由根節點 左子樹 右子樹三個部分構成。其有3中遍歷方式 1.先序遍歷 根節點 左子樹 右子樹 2.中序遍歷 左子樹 根節點 右子樹 3.後序遍歷 左子樹 右子樹 根節點 輸入的二叉樹ab dg ce fh 3種遍歷節點序列如下 include include 性質 1.在二叉樹的第...
二叉樹遍歷及其相關問題
二叉樹的定義 在電腦科學中,二叉樹是每個節點最多有兩個子樹的樹結構。通常子樹被稱作 左子樹 left subtree 和 右子樹 right subtree 二叉樹常被用於實現二叉查詢樹和二叉堆。二叉樹的每個結點至多只有二棵子樹 不存在度大於2的結點 二叉樹的子樹有左右之分,次序不能顛倒。二叉樹的第...
二叉樹及其遍歷
滿二叉樹肯定是完全二叉樹,完全二叉樹不一定是滿二叉樹 二叉樹的遍歷 先序遍歷 也叫做先根遍歷 前序遍歷,首先訪問根結點然後遍歷左子樹,最後遍歷右子樹。在遍歷左 右子樹時,仍然先訪問根結點,然後遍歷左子樹,最後遍歷右子樹,如果二叉樹為空則返回。中序遍歷 首先遍歷左子樹,然後訪問根結點,最後遍歷右子樹。...