引言:根據(jù)一顆二叉樹,可以得出他的先序、中序、后序三種遍歷方式,那么如果我們知道了他的前序、中序、后序遍歷,如何繪制出這顆二叉樹呢?
1、二叉樹三種遍歷方式的特性
- 特性A,對(duì)于前序遍歷,第?個(gè)肯定是根節(jié)點(diǎn);
- 特性B,對(duì)于后序遍歷,最后?個(gè)肯定是根節(jié)點(diǎn);
- 特性C,利?前序或后序遍歷,確定根節(jié)點(diǎn),在中序遍歷中,根節(jié)點(diǎn)的兩邊就可以分出左?樹和右?樹;
- 特性D,對(duì)左?樹和右?樹分別做前?3點(diǎn)的分析和拆分,相當(dāng)于做遞歸,我們就可以重建出完整的?叉樹;
2、根據(jù)二叉樹的先序、中序遍歷構(gòu)建二叉樹
例:已知一顆二叉樹的前序遍歷和中序遍歷的順序如下,請(qǐng)繪制出這顆二叉樹
前序遍歷的順序是: CABGHEDF
中序遍歷的順序是: GHBACDEF
步驟:
1、第?步,我們根據(jù)特性A,可以得知根節(jié)點(diǎn)是C,然后,根據(jù)特性C,我們知道左?樹是:GHBA,右?樹是:DEF
2、第?步,取出左?樹,左?樹的前序遍歷是:ABGH,中序遍歷是:GHBA,根據(jù)特性A和C,得出左?樹的?節(jié)點(diǎn)是A,并且A沒有右?樹。
3、第三步,使?同樣的?法,前序是BGH,中序是GHB,得出?節(jié)點(diǎn)是B,GH是左?樹,沒有右?樹
4、第四步,前序是GH, 中序是GH, 所以 G是?節(jié)點(diǎn), H是右?樹, 沒有左?樹
5、第五步,回到右?樹,它的前序是EDF,中序是DEF,依然根據(jù)特性A和C,得出?節(jié)點(diǎn)是E,左右節(jié)點(diǎn)是D和F。到此,我們得到了這顆完整的二叉樹,如下圖所示。
3、根據(jù)二叉樹的中序、后序遍歷構(gòu)建二叉樹
例:已知一顆二叉樹的中序遍歷和后序遍歷的順序如下,請(qǐng)繪制出這顆二叉樹
中序遍歷的順序是: GHBACDEF
后序遍歷的順序是: HGBADFEC文章來源:http://www.zghlxwxcb.cn/news/detail-455988.html
步驟:
1、第?步,我們根據(jù)特性B,可以得知根節(jié)點(diǎn)是C,然后,根據(jù)特性C,我們知道左?樹是:GHBA,右?樹是:DEF
2、第?步,取出左?樹,左?樹的后序遍歷是:HGBA,中序遍歷是:GHBA,根據(jù)特性B和C,得出左?樹的?節(jié)點(diǎn)是A,并且A沒有右?樹。
3、第三步,使?同樣的?法,后序是HGB,中序是GHB,得出?節(jié)點(diǎn)是B,GH是左?樹,沒有右?樹
4、第四步,后序是HG, 中序是GH, 所以 G是?節(jié)點(diǎn), H是右?樹, 沒有左?樹
5、第五步,回到右?樹,它的后序是DFE,中序是DEF,依然根據(jù)特性B和C,得出?節(jié)點(diǎn)是E,左右節(jié)點(diǎn)是D和F。到此,我們得到了這顆完整的二叉樹,如下圖所示。文章來源地址http://www.zghlxwxcb.cn/news/detail-455988.html
到了這里,關(guān)于根據(jù)二叉樹的先序、中序、后序遍歷構(gòu)建二叉樹-圖文詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!