二叉樹的遍歷研究及還原研究_第1頁
二叉樹的遍歷研究及還原研究_第2頁
二叉樹的遍歷研究及還原研究_第3頁
全文預覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、二叉樹的遍歷研究及還原研究    摘要:通過對同一棵二叉樹三種遍歷方式的分析,概括出由前序、中序或由中序、后序遍歷結(jié)果快速還原二叉樹的方法。 關(guān)鍵詞:二叉樹;二叉樹的遍歷;二叉排序樹;還原 二叉樹是最為常用的數(shù)據(jù)結(jié)構(gòu),它的實際應(yīng)用非常廣泛。二叉樹的遍歷方式有三種,前序遍歷、中序遍歷、后序遍歷。先序遍歷的順序為:NLR,即先根結(jié)點,然后左子樹、右子樹;中序遍歷順序為:LNR先左子樹,然后根結(jié)點、右子樹;后序遍歷順序為:LRN先左子樹、然后右子樹、根結(jié)點。由前序和中序遍歷、由中序和后序遍歷序列可以唯一確定一棵二叉樹,而由前序和后序遍歷序列不能唯一確定一棵二叉

2、樹。 二叉排序樹對二叉樹作了進一步的限定:根結(jié)點的權(quán)值大于(或小于)左子樹中所有結(jié)點的權(quán)值;根結(jié)點的權(quán)值小于(或大于)其右子樹中所有結(jié)點的權(quán)值。 那么如何根據(jù)三種遍歷序列之間的關(guān)系及二叉排序樹來快速還原一棵二叉樹?下面以二叉樹的前序和中序遍歷序列為基礎(chǔ),利用二叉排序樹的性質(zhì),給出快速還原二叉樹的方法。 1由給定前序和中序序列或中序和后序序列還原二叉樹的方法 例:前序序列:ABDECFGH 中序序列:DEBACGFH (后序序列:EDBGHFCA) (1)給中序序列中的每個結(jié)點從小到大、從左到右賦以權(quán)值,如下: D(1)E(2)B(3)A(4)C(5)G(6)F(7)H(8) (2)還原時讀入的

3、序列為前序序列,從左到右依次讀入序列中的各個結(jié)點值和相應(yīng)的權(quán)值; (3)由讀入的序列,根據(jù)第1)步中給定的權(quán)值按照二叉排序樹的構(gòu)造規(guī)則構(gòu)造二叉排序樹。第一個讀入的結(jié)點為根結(jié)點,其他結(jié)點分別為左右子樹中的結(jié)點。設(shè)根結(jié)點為TT,權(quán)值為NN,當前讀入結(jié)點為SS,權(quán)值為MM,若MM<> (4)將SS插入到TT的左子樹或右子樹的過程中,仍然遵循3)中的規(guī)則,直至左子樹或右子樹為空時止。 (5)讀入序列結(jié)束時,二叉樹還原成功。還原后的二叉樹如下圖。 (6)對于由中序序列和后序序列還原二叉樹是,讀入的序列為后序序列,從右向左讀入,構(gòu)造規(guī)則同上。還原結(jié)果與上述結(jié)果完全一致。 2還原方法的確定依據(jù)

4、二叉樹遍歷過程中,在中序序列中,根結(jié)點的左子樹中的所有結(jié)點都在根結(jié)點的左側(cè),根結(jié)點的右子樹中的所有結(jié)點都在根結(jié)點的右側(cè),這個特點恰好與二叉排序樹具有相同的性質(zhì);在讀入序列時,前序序列則從左向右讀,這恰好與遍歷二叉樹的順序相同;后序序列從右向左讀,則按照根結(jié)點、右子樹、左子樹的順序還原。 (1)設(shè)二叉樹共有N個結(jié)點(N為大于1的正整數(shù)),我們按照還原方法給中序序列中的這N個結(jié)點分別賦予權(quán)值1,2N,設(shè)根結(jié)點的權(quán)值為M(1<M<> (2)由二叉樹的遍歷規(guī)則可知,權(quán)值為1,2M-1的結(jié)點為根結(jié)點的左子樹中的結(jié)點,而權(quán)值為M+1,N的結(jié)點為根結(jié)點的右子樹中的結(jié)點。 (3)將這N個結(jié)點

5、劃分成3個子集AA(1,2M-1)BB(M)CC(M+1,N),由于前序序列第一個讀入的結(jié)點必定為二叉根的根結(jié)點,所以BB為根結(jié)點,AA集為左子樹,CC集為右子樹。 (4)同理不斷讀入前序序列中的結(jié)點,依次遞歸還原BB對應(yīng)的左子樹和CC對應(yīng)的右子樹,最后將三棵子樹合并成以BB為根結(jié)點、AA的根結(jié)點為BB的左子樹、CC的根結(jié)點為BB的右子樹的一棵二叉排序樹。 (5)同理可以得出,由中序序列和后序序還原二叉樹的規(guī)則也成立。 (6)在還原過程中,讀入序列的順序也遵循也先根結(jié)點,后子樹的規(guī)律。 3總結(jié) 在二叉樹的一些應(yīng)用中,如平衡二叉樹、紅黑樹等,常常要觀察二叉樹的形態(tài),對其進行判斷并調(diào)整。根據(jù)遍歷序列和二叉排序樹的性質(zhì)快速還原出二叉樹對于研究相關(guān)的問題有很大的幫助。 參考文獻 1嚴蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)M.北京:清華大學出版社,1996.     你可能感興

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論