首頁 >後端開發 >C#.Net教程 >C語言中二元樹中序遍歷怎麼執行?

C語言中二元樹中序遍歷怎麼執行?

coldplay.xixi
coldplay.xixi原創
2020-07-15 11:26:033799瀏覽

C語言中二元樹中序遍歷的方法:首先遍歷左子樹,並藉助遞歸繼續訪問直到最左側節點;然後訪問根結點;最後遍歷右子樹,並藉助遞歸繼續訪問直到最右側節點即可。

C語言中二元樹中序遍歷怎麼執行?

C語言中二元樹中序遍歷的方法:

中序遍歷的規則是:左子樹---> 根結點---> 右子樹。所以我們訪問節點的順序需要改變。

  • 我們直到遞迴是來回的過程,對於剛好有兩個子節點(子節點無節點)的節點來說。只需要訪問一次左節點,訪問根,訪問右節點。即可。

  • 而如果兩邊有節點來說。每個節點都要滿足中序遍歷的規則。我們從根先訪問左節點。到了左節點這兒左節點又變成一顆子樹,也要滿足中序遍歷要求。所以就要先訪問左節點的左節點(如果存在)。那如果你這樣想,規則雖然懂了。但是也太複雜了吧。那我們藉助遞歸。因為它的子問題和根節點的問題一致,只是範圍減少了。所以我們使用遞歸思想來解決。

  • 那麼遞歸的邏輯為:考慮特殊情況(特殊就直接訪問)不進行遞歸否則遞歸的訪問左子樹(讓左子樹執行相同函數,特殊就停止遞歸輸出,不特殊就一直找下去直到最左側節點。)——>輸出該節點—>遞歸的訪問右子樹.

public void zhongxu(node t)// 中序遍历 中序遍历:左子树---> 根结点 ---> 右子树
{
if (t != null) {
zhongxu(t.left);
System.out.print(t.value + " ");// 访问完左节点访问当前节点
zhongxu(t.right);
}
}

相關學習推薦:C影片教學

以上是C語言中二元樹中序遍歷怎麼執行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn