版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、算法分析與設(shè)計(jì)(JAVA版)講師:牛牧樹(shù)與二叉樹(shù)概念設(shè)計(jì)二叉樹(shù)類 Lesson20樹(shù)與二叉樹(shù)的基本概念二叉樹(shù)類設(shè)計(jì)樹(shù)的概念樹(shù)是由n(n0)個(gè)結(jié)點(diǎn)構(gòu)成的滿足以下條件的結(jié)點(diǎn)集合:(1)當(dāng)n0時(shí),有一個(gè)特殊的結(jié)點(diǎn)稱為根結(jié)點(diǎn),根結(jié)點(diǎn)沒(méi)有前驅(qū)結(jié)點(diǎn);(2)當(dāng)n1時(shí),除根結(jié)點(diǎn)外的其他結(jié)點(diǎn)被分成m(m0)個(gè)互不相交的集合T1, T2, Tm,其中每一個(gè)集合Ti(1im)本身又是一棵結(jié)構(gòu)和樹(shù)結(jié)構(gòu)類同的子樹(shù)。樹(shù)的概念只有根結(jié)點(diǎn)的樹(shù) 一般的樹(shù) 樹(shù)的基本概念結(jié)點(diǎn):結(jié)點(diǎn)由數(shù)據(jù)元素和構(gòu)造數(shù)據(jù)元素之間關(guān)系的指針組成。 結(jié)點(diǎn)的度:結(jié)點(diǎn)所擁有的子樹(shù)的個(gè)數(shù)稱為該結(jié)點(diǎn)的度。 葉結(jié)點(diǎn):度為0的結(jié)點(diǎn)稱為葉結(jié)點(diǎn),葉結(jié)點(diǎn)也稱作終端結(jié)點(diǎn)。
2、分支結(jié)點(diǎn):度不為0的結(jié)點(diǎn)稱為分支結(jié)點(diǎn),分支結(jié)點(diǎn)也稱 作非終端結(jié)點(diǎn)。 孩子結(jié)點(diǎn):樹(shù)中一個(gè)結(jié)點(diǎn)的子樹(shù)的根結(jié)點(diǎn)稱作這個(gè)結(jié)點(diǎn)的孩子結(jié)點(diǎn)。 樹(shù)的基本概念雙親結(jié)點(diǎn):若樹(shù)中某結(jié)點(diǎn)有孩子結(jié)點(diǎn),則這個(gè)結(jié)點(diǎn)就稱作它的孩子結(jié)點(diǎn)的雙親結(jié)點(diǎn)。 兄弟結(jié)點(diǎn):具有相同的雙親結(jié)點(diǎn)的結(jié)點(diǎn)稱為兄弟結(jié)點(diǎn)。 樹(shù)的度:樹(shù)中所有結(jié)點(diǎn)的度的最大值稱為該樹(shù)的度。 結(jié)點(diǎn)的層次:從根結(jié)點(diǎn)到樹(shù)中某結(jié)點(diǎn)所經(jīng)路徑上的分支數(shù)。樹(shù)的基本概念樹(shù)的深度:樹(shù)中所有結(jié)點(diǎn)的層次的最大值稱為該樹(shù)的深度。 無(wú)序樹(shù):樹(shù)中任意一個(gè)結(jié)點(diǎn)的各孩子結(jié)點(diǎn)的排列沒(méi)有嚴(yán)格次序的樹(shù)稱為無(wú)序樹(shù)。 有序樹(shù):樹(shù)中任意一個(gè)結(jié)點(diǎn)的各孩子結(jié)點(diǎn)的排列有嚴(yán)格次序的樹(shù)稱為有序樹(shù)。 森林:m(m0)棵樹(shù)的集
3、合稱為森林。 樹(shù)的抽象數(shù)據(jù)類型 數(shù)據(jù)集合 :樹(shù)的結(jié)點(diǎn)集合,每個(gè)結(jié)點(diǎn)由數(shù)據(jù)元素和構(gòu)造數(shù)據(jù)元素之間關(guān)系的指針組成。 操作集合: (1)雙親結(jié)點(diǎn)parent() (2)左孩子結(jié)點(diǎn)leftChild() (3)右兄弟結(jié)點(diǎn)rightSibling() (4)遍歷樹(shù)traverse(vs) 樹(shù)的存儲(chǔ)結(jié)構(gòu)雙親表示法 雙親表示法就是用指針表示出每個(gè)結(jié)點(diǎn)的雙親結(jié)點(diǎn)。 對(duì)于使用仿真指針的雙親表示法來(lái)說(shuō),每個(gè)結(jié)點(diǎn)應(yīng)有兩個(gè)域,一個(gè)是數(shù)據(jù)元素域,另一個(gè)是指示其雙親結(jié)點(diǎn)在數(shù)組中下標(biāo)序號(hào)的仿真指針域。樹(shù)的存儲(chǔ)結(jié)構(gòu)樹(shù)及其使用仿真指針的雙親表示法 樹(shù)的存儲(chǔ)結(jié)構(gòu)孩子表示法 孩子表示法就是用指針表示出每個(gè)結(jié)點(diǎn)的孩子結(jié)點(diǎn)。常規(guī)指針的
4、孩子表示法樹(shù)的存儲(chǔ)結(jié)構(gòu)雙親孩子表示法 雙親孩子表示法就是用指針既表示出每個(gè)結(jié)點(diǎn)的雙親結(jié)點(diǎn),也表示出每個(gè)結(jié)點(diǎn)的孩子結(jié)點(diǎn)。樹(shù)的存儲(chǔ)結(jié)構(gòu)樹(shù)的存儲(chǔ)結(jié)構(gòu)孩子兄弟表示法 孩子兄弟表示法就是用指針既表示出每個(gè)結(jié)點(diǎn)的孩子結(jié)點(diǎn),也表示出每個(gè)結(jié)點(diǎn)的兄弟結(jié)點(diǎn)。二叉樹(shù)二叉樹(shù)的定義 二叉樹(shù)是n(n0)個(gè)結(jié)點(diǎn)構(gòu)成的、每個(gè)結(jié)點(diǎn)最多只有兩個(gè)子樹(shù)的有序樹(shù)。 滿二叉樹(shù):在一棵二叉樹(shù)中,如果所有分支結(jié)點(diǎn)都存在左子樹(shù)和右子樹(shù),并且所有葉子結(jié)點(diǎn)都在同一層上。 完全二叉樹(shù):如果一棵具有n個(gè)結(jié)點(diǎn)的二叉樹(shù)的邏輯結(jié)構(gòu)與滿二叉樹(shù)的前n個(gè)結(jié)點(diǎn)的邏輯結(jié)構(gòu)相同。二叉樹(shù)兩棵不同的二叉樹(shù)二叉樹(shù)滿二叉樹(shù)和完全二叉樹(shù) 二叉樹(shù)抽象數(shù)據(jù)類型數(shù)據(jù)集合:二叉樹(shù)的結(jié)點(diǎn)
5、集合,每個(gè)結(jié)點(diǎn)由數(shù)據(jù)元素和構(gòu)造數(shù)據(jù)元素之間關(guān)系的指針組成。操作集合: (1)雙親結(jié)點(diǎn)parent(): (2)左孩子結(jié)點(diǎn)leftChild() (3)右孩子結(jié)點(diǎn)rightSibling() (4)左插入結(jié)點(diǎn)insertLeftNode(x) (5)右插入結(jié)點(diǎn)insertRightNode(x): (6)左刪除子樹(shù)deleteLeftTree() (7)右刪除子樹(shù)deleteRightTree() (8)遍歷二叉樹(shù)traverse(vs)二叉樹(shù)的性質(zhì) 性質(zhì)1 若規(guī)定根結(jié)點(diǎn)的層次為0,則一棵非空二叉樹(shù)的第i層上最多有2i(i0)個(gè)結(jié)點(diǎn)。 性質(zhì)2 若規(guī)定空二叉樹(shù)樹(shù)的深度為-1(即根結(jié)點(diǎn)的深度為0),
6、則深度為k的二叉樹(shù)的最大結(jié)點(diǎn)數(shù)是2k+1-1(k-1)個(gè)。 性質(zhì)3 具有n個(gè)結(jié)點(diǎn)的完全二叉樹(shù)的深度k為不超過(guò)log2(n+1)-1的最大整數(shù)。 性質(zhì)4 對(duì)于一棵非空的二叉樹(shù),如果葉結(jié)點(diǎn)個(gè)數(shù)為n0,度為2的結(jié)點(diǎn)數(shù)為n2,則有n0= n2+1。二叉樹(shù)的性質(zhì)性質(zhì)5 對(duì)于具有n個(gè)結(jié)點(diǎn)的完全二叉樹(shù),如果按照從上至下和從左至右的順序?qū)λ薪Y(jié)點(diǎn)從0開(kāi)始順序編號(hào),則對(duì)于序號(hào)為i的結(jié)點(diǎn),有: (1)如果i0,則序號(hào)為i結(jié)點(diǎn)的雙親結(jié)點(diǎn)的序號(hào)為 (i-1)/2(“/”表示整除);如果i=0,則序號(hào)為i結(jié)點(diǎn)為根結(jié)點(diǎn),無(wú)雙親結(jié)點(diǎn)。 (2)如果2i+1n,則序號(hào)為i結(jié)點(diǎn)的左孩子結(jié)點(diǎn)的序號(hào)為2i+1;如果2i+1n,則序號(hào)為i結(jié)點(diǎn)無(wú)左孩子結(jié)點(diǎn)。 (3)如果2i+2n,則序號(hào)為i結(jié)點(diǎn)的右孩子結(jié)點(diǎn)的序號(hào)為2i+2;如果2i+2n,則序號(hào)為i結(jié)點(diǎn)無(wú)右孩子結(jié)點(diǎn)。二叉樹(shù)的存儲(chǔ)結(jié)構(gòu)二叉樹(shù)的順序存儲(chǔ)結(jié)構(gòu) 非完全二叉樹(shù)的順序存儲(chǔ)結(jié)構(gòu)如下圖二叉樹(shù)的存儲(chǔ)結(jié)構(gòu) 二叉樹(shù)的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu) 二叉樹(shù)的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)是用指針建立二叉樹(shù)中結(jié)點(diǎn)之間的關(guān)系。 二叉鏈存儲(chǔ)結(jié)構(gòu)的每個(gè)結(jié)點(diǎn)包含三個(gè)域 。leftChilddatarightChild二叉樹(shù)的存儲(chǔ)結(jié)構(gòu)二叉鏈存儲(chǔ)結(jié)構(gòu)的二叉樹(shù)(
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度木工手工藝品展覽與合作推廣合同
- 二零二五年度炊事員廚房廢棄物處理及環(huán)保責(zé)任協(xié)議書(shū)4篇
- 二零二五年度中醫(yī)養(yǎng)生項(xiàng)目投資合作協(xié)議4篇
- 二零二五年度汽車(chē)抵押貸款反擔(dān)保服務(wù)合同范本4篇
- 2025年鋁單板安裝與建筑節(jié)能減排技術(shù)轉(zhuǎn)移合同3篇
- 二零二五年度高端商業(yè)空間美陳維護(hù)管理協(xié)議4篇
- 二零二五年度環(huán)保設(shè)施運(yùn)營(yíng)承包協(xié)議4篇
- 二零二五年度智能家居代購(gòu)代理服務(wù)合同范本4篇
- 二零二五年度共享公寓租賃協(xié)議4篇
- 2024碎石生產(chǎn)線節(jié)能減排承包運(yùn)營(yíng)合同范本3篇
- 2024電子商務(wù)平臺(tái)用戶隱私保護(hù)協(xié)議3篇
- 安徽省蕪湖市2023-2024學(xué)年高一上學(xué)期期末考試 英語(yǔ) 含答案
- 電力工程施工安全風(fēng)險(xiǎn)評(píng)估與防控
- 醫(yī)學(xué)教程 常見(jiàn)體表腫瘤與腫塊課件
- 內(nèi)分泌系統(tǒng)異常與虛勞病關(guān)系
- 智聯(lián)招聘在線測(cè)評(píng)題
- DB3418T 008-2019 宣紙潤(rùn)墨性感官評(píng)判方法
- 【魔鏡洞察】2024藥食同源保健品滋補(bǔ)品行業(yè)分析報(bào)告
- 生豬屠宰獸醫(yī)衛(wèi)生檢驗(yàn)人員理論考試題及答案
- 鋼筋桁架樓承板施工方案
- 2024年駐村第一書(shū)記工作總結(jié)干貨3篇
評(píng)論
0/150
提交評(píng)論