C語言中二元樹中序遍歷的方法:首先遍歷左子樹,並藉助遞歸繼續訪問直到最左側節點;然後訪問根結點;最後遍歷右子樹,並藉助遞歸繼續訪問直到最右側節點即可。
C語言中二元樹中序遍歷的方法:
中序遍歷的規則是:左子樹---> 根結點---> 右子樹。所以我們訪問節點的順序需要改變。
我們直到遞迴是來回的過程,對於剛好有兩個子節點(子節點無節點)的節點來說。只需要訪問一次左節點,訪問根,訪問右節點。即可。
而如果兩邊有節點來說。每個節點都要滿足中序遍歷的規則。我們從根先訪問左節點。到了左節點這兒左節點又變成一顆子樹,也要滿足中序遍歷要求。所以就要先訪問左節點的左節點(如果存在)。那如果你這樣想,規則雖然懂了。但是也太複雜了吧。那我們藉助遞歸。因為它的子問題和根節點的問題一致,只是範圍減少了。所以我們使用遞歸思想來解決。
那麼遞歸的邏輯為:考慮特殊情況(特殊就直接訪問)不進行遞歸否則遞歸的訪問左子樹(讓左子樹執行相同函數,特殊就停止遞歸輸出,不特殊就一直找下去直到最左側節點。)——>輸出該節點—>遞歸的訪問右子樹.
public void zhongxu(node t)// 中序遍历 中序遍历:左子树---> 根结点 ---> 右子树 { if (t != null) { zhongxu(t.left); System.out.print(t.value + " ");// 访问完左节点访问当前节点 zhongxu(t.right); } }
相關學習推薦:C影片教學
以上是C語言中二元樹中序遍歷怎麼執行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!