新聞中心
c語言編程實(shí)現(xiàn)二叉樹的三種遍歷?
二叉樹有三種遍歷方式,分別為先序遍歷、中序遍歷、后序遍歷。

專業(yè)領(lǐng)域包括成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、商城網(wǎng)站建設(shè)、微信營銷、系統(tǒng)平臺開發(fā), 與其他網(wǎng)站設(shè)計(jì)及系統(tǒng)開發(fā)公司不同,成都創(chuàng)新互聯(lián)的整合解決方案結(jié)合了幫做網(wǎng)絡(luò)品牌建設(shè)經(jīng)驗(yàn)和互聯(lián)網(wǎng)整合營銷的理念,并將策略和執(zhí)行緊密結(jié)合,為客戶提供全網(wǎng)互聯(lián)網(wǎng)整合方案。
二叉樹是指樹中節(jié)點(diǎn)的度不大于2的有序樹,它是一種最簡單且最重要的樹。二叉樹的遞歸定義為:二叉樹是一棵空樹,或者是一棵由一個(gè)根節(jié)點(diǎn)和兩棵互不相交的,分別稱作根的左子樹和右子樹組成的非空樹;左子樹和右子樹又同樣都是二叉樹。
知道中序和后序遍歷,畫二叉樹和寫出前序遍歷?
知道中序和后序遍歷,以中序遍歷是: HDMIBJNEAFKCG。后續(xù)遍歷是HMIDNJEBKFGCA為例,畫二叉樹和寫出前序遍歷的方法和步驟如下
1、從后序遍歷知道,最后一個(gè)必然是根節(jié)點(diǎn),因此A是根。再結(jié)合中序遍歷可知HDMIBJNE是A的左子樹部分,F(xiàn)KCG是右子樹部分;
2、取A的右子樹部分來看先,右子樹部分的中序遍歷:FKCE,后序遍歷:KFGC。接著從后序遍歷中看A的右子樹部分KFGC,所以C是根,又從中序遍歷知,F(xiàn)K是C的左子樹部分,G是C右子樹;
3、使用同樣的方法,C的左子樹部分,中序:FK,后序:KF??梢缘贸鯢是根,那么K只能是F的右子樹了。此時(shí)如圖所示,A的右子樹部分都出來了;
4、再看,A的左子樹部分HDMIBJE,中序:HDMIBJNE,后序:HMIDNJEB。后序遍歷可知,B是根結(jié)點(diǎn),那么再結(jié)合中序遍歷可知道HDMI是B的左子樹部分,JNE是B的右子樹部分;
5、緊接著就是看B的左子樹部分HDMI,中序:HDMI,后序:HMID,可知D是根,H是D的左子樹,MI是D的右子樹部分;
6、看到D的右子樹部分,中序后序都是MI,根據(jù)后序中序的特性可知道,根只能是I,M是I的左子樹;
7、再接著看看B的右子樹部分JNE,中序:JNE,后序:NJE,后序看出E是根,中序看出E無右子樹,只有JN是E的左子樹部分;
8、最后看JN的中序:JN,后序:NJ,根據(jù)后序特性看出,J是根,中序看出N是J的右子樹,那么整體的二叉樹就出來了。
中序遍歷規(guī)則?
中序遍歷的過程可以看作是一棵樹的“掃描”,其過程規(guī)則如下:
1.先從樹的根節(jié)點(diǎn)開始遍歷
2.接著沿著樹的左子樹,依次訪問每個(gè)節(jié)點(diǎn),直到訪問到最左側(cè)葉子節(jié)點(diǎn)。
3.然后,訪問根節(jié)點(diǎn)。
4.再接著,沿著右子樹,依次訪問每個(gè)節(jié)點(diǎn),直到訪問到最右側(cè)葉子節(jié)點(diǎn)
5.最后,重復(fù)上述過程,直至遍歷完樹中所有的節(jié)點(diǎn)。
中序遍歷是一種二叉樹的遍歷方式,其基本步驟是:
1. 從根節(jié)點(diǎn)開始,沿著左子樹方向前進(jìn),直至遇到一個(gè)葉子節(jié)點(diǎn),訪問該節(jié)點(diǎn);
2. 如果當(dāng)前節(jié)點(diǎn)沒有右子樹,則向上回溯,直至某個(gè)節(jié)點(diǎn)有右子樹,訪問該節(jié)點(diǎn);
3. 從步驟1開始,重復(fù)沿著右子樹方向前進(jìn),直至葉子節(jié)點(diǎn)。
樹的遍歷順序大體分為三種:前序遍歷(先根遍歷、先序遍歷),中序遍歷(中根遍歷),后序遍歷(后根遍歷)。
規(guī)則
前序遍歷的規(guī)則:
(1)訪問根節(jié)點(diǎn)
(2)前序遍歷左子樹
(3)前序遍歷右子樹
中序遍歷的規(guī)則:
一棵二叉樹的先序遍歷?
1、先序遍歷第一個(gè)為樹的根,先序遍歷是先根再左子樹最后右子樹,第一個(gè)肯定是樹的根,先畫A,A再中序遍歷中左右都有,說明A有左子樹也有右子樹。
2、然后看先序第一個(gè)值是B,在中序中為A的前面,所以B是A的左子樹
3、繼續(xù)看先序,接下來是C、D,C再中序中再B的前面,所以C是B的左子樹,D在B后面,D是B的
4、接下來是E,E在中序是在D后面A前面,所以E是D的右子樹
5、接著先序中是F,F(xiàn)在中序?yàn)锳后面,是A的右子樹
到此,以上就是小編對于java二叉樹的遍歷算法代碼的問題就介紹到這了,希望這4點(diǎn)解答對大家有用。
分享標(biāo)題:Java二叉樹的遍歷方式有哪些
分享鏈接:http://m.5511xx.com/article/ccoespg.html


咨詢
建站咨詢
