二叉樹遍歷的實質,樹的遍歷和二叉樹的遍歷區別

大家好,今天來為大家分享二叉樹遍歷的實質的一些知識點,和樹的遍歷和二叉樹的遍歷區別的問題解析,大家要是都明白,那么可以忽略,如果不太清楚的話可以看看本篇文章,相信很大概...
大家好,今天來為大家分享二叉樹遍歷的實質的一些知識點,和樹的遍歷和二叉樹的遍歷區別的問題解析,大家要是都明白,那么可以忽略,如果不太清楚的話可以看看本篇文章,相信很大概率可以解決您的問題,接下來我們就一起來看看吧!
為什么樹的后根遍歷就是對應二叉樹的中序遍歷
一棵樹的后根遍歷與這棵樹所對應的二叉樹的中序遍歷相同。
當對一棵數學表達式樹進行中序,前序和后序遍歷時,就分別得到表達式的中綴、前綴和后綴形式。中綴(infix)形式即平時所書寫的數學表達式形式,在這種形式中,每個二元操作符(也就是有兩個操作數的操作符)出現在左操作數之后,右操作數之前。
一棵二叉樹的前序遍歷結果是ABCEDF,中序遍歷結果是CBAEDF,則其后序遍歷的結果是
二叉樹是:A/\BE/\CD\F所以后序遍歷是:CBFDEA
二叉樹三種遍歷順序的特點
二叉樹的遍歷分為以下三種:
先序遍歷:遍歷順序規則為【根左右】
中序遍歷:遍歷順序規則為【左根右】
后序遍歷:遍歷順序規則為【左右根】
某二叉樹的后序遍歷序列與中序遍歷序列相同
后序遍歷說明E是根節點,可見在中序中E的左邊是左子樹,右邊是右子樹,可知左子樹只有一個D節點,再看后序遍歷中ACB序列說明B是右子樹的根節點,在中序中找到B,發現B沒有左子樹,就是說AC都在B的右子樹上,又知道后序遍歷中順序是AC說明A是C的子節點,而中序順序是AC說明A在C的左子樹上,前序:EDBCA
二叉樹遍歷例題
假設某二叉樹的先序遍歷序列是abdgcefh,中序遍歷序列是dgbaechf,畫出二叉樹,并給出其后序遍歷序列。分析過程:
以下面的例題為例進行講解:
已知一棵二叉樹的先序遍歷序列和中序遍歷序列分別是abdgcefh、dgbaechf,求二叉樹及后序遍歷序列。
分析:先序遍歷序列的第一個字符為根結點。對于中序遍歷,根結點在中序遍歷序列的中間,左邊部分是根結點的左子樹的中序遍歷序列,右邊部分是根結點的右子樹的中序遍歷序列。先序:abdgcefh-->abdgcefh
中序:dgbaechf-->dgbaechf
得出結論:a是樹根,a有左子樹和右子樹,左子樹有bdg結點,右子樹有cefh結點。先序:bdg-->bdg
中序:dgb-->dgb
得出結論:b是左子樹的根結點,b無右子樹,有左子樹。先序:dg-->dg
中序:dg-->dg
得出結論:d是b的左子樹的根結點,d無左子樹,有右子樹。先序:cefh-->cefh
中序:echf-->echf
得出結論:c是右子樹的根結點,c有左子樹(只有e結點),有右子樹(有fh結點)。先序:fh-->fh
中序:hf-->hf
得出結論:f是c的左子樹的根結點,f有左子樹(只有h結點),無右子樹。還原二叉樹為:
a
bc
def
gh后序遍歷序列:gdbehfca
前序遍歷是什么
這個是二叉樹里面的一種遍歷情況,前序遍歷也叫做先根遍歷,可記做根左右。
前序遍歷首先訪問根結點然后遍歷左子樹,最后遍歷右子樹。在遍歷左、右子樹時,仍然先訪問根結點,然后遍歷左子樹,最后遍歷右子樹。
二叉樹中序遍歷的結果
根據已知的中序和后序,可以確定根結點A和左子樹:BDCE右子樹:FHG然后再確定左子樹的中序BDCE和后序DECB確定左子樹的根結點為B,右子樹的中序FHG后序HGF確定右子樹根結點為F,再確定左子樹的左子樹及右子樹的右子樹這樣遞歸下去直到所有的結點!
關于本次二叉樹遍歷的實質和樹的遍歷和二叉樹的遍歷區別的問題分享到這里就結束了,如果解決了您的問題,我們非常高興。
本文鏈接:http://www.resource-tj.com/qianduan/2269.html