下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、數(shù)據(jù)結(jié)構(gòu)趣談樹樹是一種重要的非線性數(shù)據(jù)結(jié)構(gòu),直觀地看,它是數(shù)據(jù)元素(在樹中稱為結(jié)點(diǎn))按分支關(guān)系組織起來的結(jié)構(gòu),很象自然界中的樹那樣。樹結(jié)構(gòu)在客觀世界中廣泛存在,如人類社會(huì)的族譜和各種社會(huì)組織機(jī)構(gòu)都可用樹形象表示。樹在計(jì)算機(jī)領(lǐng)域中也得到廣泛應(yīng)用。一、樹的概述樹結(jié)構(gòu)的特點(diǎn)是:它的每一個(gè)結(jié)點(diǎn)都可以有不止一個(gè)直接后繼,除根結(jié)點(diǎn)外的所有結(jié)點(diǎn)都有且只有一個(gè)直接前趨。(一)樹的定義樹是由一個(gè)或多個(gè)結(jié)點(diǎn)組成的有限集合,其中:必有一個(gè)特定的稱為根(ROOT)的結(jié)點(diǎn);剩下的結(jié)點(diǎn)被分成=0 個(gè)互不相交的集合 T1、T2、Tn,而且,這些集合的每一個(gè)又都是樹。樹 T1、T2、Tn 被稱作根的(Subtree)。樹中每
2、個(gè)分叉點(diǎn)稱為結(jié)點(diǎn),起始結(jié)點(diǎn)稱為樹根,任意兩個(gè)結(jié)點(diǎn)間的連接關(guān)系稱為樹枝,結(jié)點(diǎn)下面不再有分枝稱為樹葉。結(jié)點(diǎn)的前趨結(jié)點(diǎn)稱為該結(jié)點(diǎn)的“雙親”,結(jié)點(diǎn)的后趨結(jié)點(diǎn)稱為該結(jié)點(diǎn)的“”或“孩子”,同一結(jié)點(diǎn)的“”之間互稱“兄弟”。(二)樹的表示樹中每個(gè)結(jié)點(diǎn)的內(nèi)容分兩部分表示:結(jié)點(diǎn)的性質(zhì);結(jié)點(diǎn)的指針域。結(jié)點(diǎn)的性質(zhì):描述結(jié)點(diǎn)的必要數(shù)據(jù)。結(jié)點(diǎn)的指針域:指向結(jié)點(diǎn)的每一個(gè)孩子。指針域采用多重鏈表,又分為不定長度結(jié)點(diǎn)的多重鏈表與固定長度結(jié)點(diǎn)的多重鏈表。不定長度結(jié)點(diǎn)的多重鏈表表示樹時(shí),每個(gè)結(jié)點(diǎn)的指針域個(gè)數(shù)等于該結(jié)點(diǎn)的孩子的個(gè)數(shù),其形式如下:每個(gè)指針域指向一個(gè)孩子,這樣雖然不浪費(fèi)空間,但由于結(jié)點(diǎn)長度不等,將給分配造成,給各種運(yùn)算帶
3、來極大不便。固定長度結(jié)點(diǎn)的多重鏈表表示樹時(shí),樹中每個(gè)結(jié)點(diǎn)的指針域個(gè)數(shù)都相等于樹中結(jié)點(diǎn)的最大度數(shù),也就是說,不論結(jié)點(diǎn)的孩子多少,其長度均取最大長度。這樣長度劃一,處理問題簡單方便,但對(duì)空間浪費(fèi)很大。一種稱之為二叉樹為了尋求一種恰當(dāng)?shù)臉涞牡臉湫徒Y(jié)構(gòu)。表示方法,DHILD1CHILD2CHILDn二、二叉樹二叉樹是一種十分重要的樹型結(jié)構(gòu)。它的特點(diǎn)是,樹中的每個(gè)結(jié)點(diǎn)最多只有兩棵,即樹中任何結(jié)點(diǎn)的度數(shù)不大于。二叉樹的有左右之分,而且,的左右次序是重要的,即使在只有一棵的情況下,也應(yīng)分清是樹還是右。(一)定義二叉樹是結(jié)點(diǎn)的有限集合,這個(gè)集合或是空的,或是由一個(gè)根結(jié)點(diǎn)和兩棵互不相交的稱之為樹和右的二叉樹組成
4、。圖 2 列出了二叉樹的五種基本形態(tài)。圖 2(a)為空二叉樹;(b)只有一個(gè)結(jié)點(diǎn)的二叉樹;(c)只有樹的二叉樹;(d)只有右的二叉樹;(e)左右完全的二叉樹。(二)滿二叉樹一棵深度為 K 的滿二叉樹,是有 2K-1 個(gè)結(jié)點(diǎn)的深度為 K 的二叉樹。2K-1個(gè)結(jié)點(diǎn)是二叉樹所能具有的最大結(jié)點(diǎn)個(gè)數(shù)。圖 3 所示為一棵深度為的滿二叉樹。圖 3圖 4(三)完全二叉樹對(duì)滿二叉樹,從第一層的結(jié)點(diǎn)(即根)開始,由下而上,由右,按順序結(jié)點(diǎn),便得到滿二叉樹的一個(gè)順序表示。據(jù)此,完全二叉樹定義如下:一棵具有個(gè)結(jié)點(diǎn),深度為 K 的二叉樹,當(dāng)且僅當(dāng)所有結(jié)點(diǎn)對(duì)應(yīng)于深度為 K 的滿二叉樹中由至的那些結(jié)點(diǎn)時(shí),該二叉樹便是完全二
5、叉樹。圖 4 是一棵完全二叉樹。(四)二叉樹的二叉樹一般采重鏈表作為其結(jié)構(gòu),表中每個(gè)結(jié)點(diǎn)都有三個(gè)域:數(shù)據(jù)域 DATA、左指針域 LCHILD 和右指針域 RCHILD。其中指針域 LCHILD 和RCHILD 分別指向其左孩子和右孩子。如圖 5 所示。圖 5二叉樹結(jié)點(diǎn)的結(jié)構(gòu)形式三、二叉樹的遍歷遍歷是對(duì)樹的一種最基本的運(yùn)算,所謂遍歷二叉樹,就是按一定的規(guī)則和順序走遍二叉樹的所有結(jié)點(diǎn),使每一個(gè)結(jié)點(diǎn)都被一次,而且只被一次。由于二叉樹是非線性結(jié)構(gòu),因此,樹的遍歷實(shí)質(zhì)上是將二叉樹的各個(gè)結(jié)點(diǎn)轉(zhuǎn)換成為一個(gè)線性序列來表示。設(shè) L、D、R 分別表示遍歷樹、根結(jié)點(diǎn)和遍歷右, 則對(duì)一棵二叉樹的遍歷有三種情況:DLR
6、(稱為先根次序遍歷),LDR(稱為中根次序遍歷),LRD (稱為后根次序遍歷)。(一)先根次序遍歷的遞歸定義若二叉樹為空,則返回;否則,依次執(zhí)行以下操作:根結(jié)點(diǎn);按先根次序遍歷樹;按先根次序遍歷右;返回。例:圖 6 為表示表達(dá)式 ()/的二叉樹。圖 6根結(jié)點(diǎn),得到字符。繼而先序遍歷此樹時(shí),首先樹,按遞歸定義,先結(jié)點(diǎn)的的根結(jié)點(diǎn),得到字符。類推結(jié)點(diǎn)的樹,此時(shí)只有葉子。得到葉子后,葉子父結(jié)點(diǎn)的右,得到右的根結(jié)點(diǎn)字符。再字符父結(jié)點(diǎn)的右結(jié)點(diǎn)的樹,得到葉子字符后,得到右根結(jié)點(diǎn)字符,。先序遍歷完整棵樹,得到序列為:這就是表達(dá)式的前綴表示或稱波蘭表示。/ (二)中根次序遍歷的遞歸定義若二叉樹為空,則返回;否則,作如下操作:按中根次序遍歷樹;根結(jié)點(diǎn);按中根次序遍歷右返回。;中序遍歷圖 6 二叉樹時(shí),引入棧,先將根結(jié)點(diǎn)字符入棧,按定義訪問根結(jié)點(diǎn)的樹,遇到的根結(jié)點(diǎn)字符入棧,結(jié)點(diǎn)的樹,到達(dá)葉子字符,則字符為第一個(gè)的結(jié)點(diǎn)。接著,將棧頂字符出棧,根結(jié)點(diǎn)字符。繼而其右,方法同上,根結(jié)點(diǎn)入棧,。這樣,中序遍歷完整棵樹后,得到的序列為: / 這就是表達(dá)式的中綴表示。(三)后根次序遍歷的遞歸定義若二叉樹為空,則返回;否則,作如下操作:按后根次序遍歷樹;按后根次序遍歷右;根結(jié)點(diǎn);返回。對(duì)圖 6 二叉樹,后序遍歷后得到
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年產(chǎn)權(quán)式商鋪返租收益保障與物業(yè)管理合同3篇
- 2024年酒店管理專業(yè)人才聘用協(xié)議版
- 2025年度冷鏈物流設(shè)施安裝合同范本3篇
- 2025年工業(yè)用針項(xiàng)目可行性研究報(bào)告
- 2024房屋典當(dāng)借款合同范本
- 2024版建筑工程鋼模板供應(yīng)鏈管理合同3篇
- 2025年度海外院校申請(qǐng)代理服務(wù)協(xié)議3篇
- 安徽省某電容器工程技術(shù)研究中心建設(shè)項(xiàng)目可行性研究報(bào)告
- 中國姜堰市服裝市場行情動(dòng)態(tài)分析及發(fā)展前景趨勢預(yù)測報(bào)告
- 二零二五年度健身房租賃與品牌加盟管理合同2篇
- 法治副校長進(jìn)校園教育
- 北京市石景山區(qū)2023-2024學(xué)年七年級(jí)上學(xué)期期末考試數(shù)學(xué)試卷(含答案)
- 2025版寒假特色作業(yè)
- 江西省吉安市2023-2024學(xué)年高一上學(xué)期1月期末考試政治試題(解析版)
- 國內(nèi)外航空安全形勢
- 零售業(yè)發(fā)展現(xiàn)狀與面臨的挑戰(zhàn)
- 2024年版汽車4S店商用物業(yè)租賃協(xié)議版B版
- 《微觀經(jīng)濟(jì)學(xué)》習(xí)題(含選擇題)
- 微信小程序云開發(fā)(赤峰應(yīng)用技術(shù)職業(yè)學(xué)院)知到智慧樹答案
- 2024-2025學(xué)年上學(xué)期福建高二物理期末卷2
- 2024-2025年第一學(xué)期小學(xué)德育工作總結(jié):點(diǎn)亮德育燈塔引領(lǐng)小學(xué)生全面成長的逐夢(mèng)之旅
評(píng)論
0/150
提交評(píng)論