本篇文章為大家展示了Java怎么實現(xiàn)遍歷二叉樹,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
登封網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應式網(wǎng)站設(shè)計等網(wǎng)站項目制作,到程序開發(fā),運營維護。成都創(chuàng)新互聯(lián)2013年開創(chuàng)至今到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。
二叉樹在計算機中的存儲方式往往線性結(jié)構(gòu),線性存儲分為順序存儲和鏈式存儲,將二叉樹按層序編號。
順序結(jié)構(gòu):按編號的順序進行存儲,對于完全二叉樹而言,順序存儲可以反映二叉樹的邏輯,但是對于大多數(shù)的二叉樹則無法反映其邏輯關(guān)系,不過可以用 ^ 來代替不存在的結(jié)點,但是如果這個樹是一個右斜樹,就非常浪費存儲空間。所以二叉樹的存儲形式一般為鏈式存儲結(jié)構(gòu)。
鏈式存儲:每一個結(jié)點都分有一個數(shù)據(jù)域(data)和兩個指針域(lchild和rchild),指針域分別指向左孩子和右孩子,若為空則為null。遍歷方式有四種:前序遍歷、中序遍歷、后序遍歷及層序遍歷,前三種遍歷方式采用遞歸的思想進行遍歷。
為方便理解,畫一個樹并結(jié)合代碼
前序遍歷:若二叉樹為空則返回null,否則先訪問根節(jié)點然后遍歷左子樹,再遍歷右子樹,如圖:ABDGHCEIF
代碼如下:
void PreOrderTraverse(BiTree T) { if(T == NULL) /*為空返回*/ return; printf("%c",T->data); /*輸出該結(jié)點的信息*/ PreOrderTraverse(T->lchild); /*遍歷左子樹*/ PreOrderTraverse(T->rchild); /*遍歷右子樹*/ }
中序遍歷:若二叉樹為空則返回null,否則從根節(jié)點出發(fā)訪問左子樹,然后訪問根結(jié)點,最后訪問右子樹,如圖:GDHBAEICF
代碼如下:
void InOrderTraverse(BiTree T) { if(T == NULL) /*為空返回*/ return; InOrderTraverse(T->lchild); /*遍歷左子樹*/ printf("%c",T->data); /*輸出該結(jié)點的信息*/ InOrderTraverse(T->rchild); /*遍歷右子樹*/ }
后序遍歷:若二叉樹為空則返回null,否則以先葉子后結(jié)點的方式進行訪問最后到根結(jié)點遍歷結(jié)束,如圖:GHDBIEFCA
代碼如下:
void PostOrderTraverse(BiTree T) { if(T == NULL) /*為空返回*/ return; PostOrderTraverse(T->lchild); /*遍歷左子樹*/ PostOrderTraverse(T->rchild); /*遍歷右子樹*/ printf("%c",T->data); /*輸出該結(jié)點的信息*/ }
層序遍歷:若二叉樹為空則返回null,否則從第一層開始進行訪問,如圖:ABCDEFGHI,按編號進行輸出或操作即可
上述內(nèi)容就是Java怎么實現(xiàn)遍歷二叉樹,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
當前名稱:Java怎么實現(xiàn)遍歷二叉樹
網(wǎng)站路徑:http://aaarwkj.com/article36/pdiipg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、網(wǎng)站導航、網(wǎng)站營銷、響應式網(wǎng)站、企業(yè)網(wǎng)站制作、營銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)