版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
遞歸及其在二叉樹中的應用1第一頁,共十四頁,2022年,8月28日二階費波納奇數列具體實現如下:longFib(intn){ if(n==0)return0; if(n==1)return1; returnFib(n-1)+Fib(n-2);}2第二頁,共十四頁,2022年,8月28日二、遞歸函數適用的場合在解決現實問題中,對于求解一個復雜的或者問題規(guī)模較大的問題,可以將其劃分為一些簡單的或者規(guī)模較小的問題進行解決,如果這種劃分滿足:所劃分成的子問題性質與原來的大問題相同。當問題規(guī)模小到一定程度的時候直接有解。對于滿足以上條件的問題我們就可以考慮使用遞歸的方法求解。遞歸策略只需少量的程序就可描述出解題過程所需要的多次重復計算,大大地減少了程序的代碼量。遞歸的能力在于用有限的語句來定義對象的無限集合。
3第三頁,共十四頁,2022年,8月28日hanoi塔問題問題描述:假設有三個分別命名為X、Y、Z的塔座,在X塔座上疊放著n個小盤壓大盤的圓盤堆,要求將塔座X上的n個圓盤移至塔座Z上,并按同樣順序疊放。要求:1、每次只能移動一個圓盤;2、圓盤可以放在X、Y、Z中的任意塔座上;3、任何時刻都不能將大盤壓在小盤上;XYZXYZ4第四頁,共十四頁,2022年,8月28日如果有一個盤子,直接從X移到Z即可。如果有n個盤子要從X移到Z,Y作為輔助。問題可以轉化為,先將上面n-1個從X移動到Y,Z作為輔助,然后將第n個從X移動到Z,最后將剩余的n-1個從Y移動到Z,X作為輔助。
hanoi塔問題5第五頁,共十四頁,2022年,8月28日Voidhanoi(intn,charx,chary,charz){//將塔座X上按直徑由小到大且自上而下編號為1至n的n個圓盤按規(guī)則搬到塔座Z上,Y作為輔助塔座。//搬動操作move(x,n,z)if(n==1)move(x,1,z);//將編號為1的圓盤從X搬到Zelse{hanoi(n-1,x,z,y);//將X上編號為1至n-1的圓盤移到Y,Z作輔助塔座move(x,n,z);//將編號為n的圓盤從X搬到Zhanoi(n-1,y,x,z);//將Y上編號為1至n-1的圓盤移到Z,Y作輔助塔座}}
hanoi塔問題6第六頁,共十四頁,2022年,8月28日voidPreOrderTraverse(BiTreeT){//采用二叉鏈表存儲結構先序遍歷二叉樹T的遞歸算法if(T){Visit(T->data);PreOrderTraverse(T->lchild);PreOrderTraverse(T->rchild);}}先序遍歷遞歸算法三、二叉樹相關算法的遞歸實現7第七頁,共十四頁,2022年,8月28日中序遍歷遞歸算法voidInOrderTraverse(BiTreeT){if(T){ InOrderTraverse(T->lchild); Visit(T->data); InOrderTraverse(T->rchild); }}三、二叉樹相關算法的遞歸實現8第八頁,共十四頁,2022年,8月28日后序遍歷遞歸算法voidPostOrderTraverse(BiTreeT){if(T){ PostOrderTraverse(T->lchild); PostOrderTraverse(T->rchild); Visit(T->data); }}三、二叉樹相關算法的遞歸實現9第九頁,共十四頁,2022年,8月28日intLeaf_Count1(BitreeT){if(!T)return0;//空樹沒有葉子結點elseif((!T->lchild)&&(!T->rchild))return1;//只有一個根結點elsereturnLeaf_Count1(T-lchild)+Leaf_Count1(T-rchild);//左子樹中的葉子結點數加上右子樹中的葉子結點數
}三、二叉樹相關算法的遞歸實現1.求二叉樹中葉子結點個數10第十頁,共十四頁,2022年,8月28日voidnodes(BiTreeT){//計算以二叉鏈表為存儲結構的二叉樹的所有結點數if(!T)return0;elseif((!T->lchild)&&(!T->rchild))return1;elsereturn(nodes(T->lchild)+nodes(T->rchild)+1);}三、二叉樹相關算法的遞歸實現2.求二叉樹中所有結點數11第十一頁,共十四頁,2022年,8月28日intf1(BiTreeT){if(T){if(T->lchild&&(!T->rchild))n++;if((!T->lchild)&&T->rchild)n++;f1(T->lchild);f1(T->rchild);}}三、二叉樹相關算法的遞歸實現3.求二叉樹中度為1的結點個數12第十二頁,共十四頁,2022年,8月28日intf2(BiTreeT){if(T){if(T->lchild&&T->rchild)n++;f2(T->lchild);f2(T->rchild);}}三、二叉樹相關算法的遞歸實現4.編寫求二叉樹中度為2的結點個數13第十三頁,共十四頁,2022年,8月28日voidExchange(BiTree&T){ BiTreeS; if(T){ S=T->lchild; T->l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度農業(yè)科技企業(yè)股權分紅及轉讓協議3篇
- 2024音樂素材版權質押合同:視頻素材制作融資
- 2025年度新能源汽車共享平臺車輛掛靠管理合同3篇
- 2025年度智慧城市基礎設施建設項目施工合同范本3篇
- 2025年度漁船租賃與漁業(yè)產業(yè)鏈整合服務合同3篇
- 2024鐵路員工勞動協議樣本一
- 2025年中國汽輪機行業(yè)市場供需格局及投資規(guī)劃建議報告
- 2025年度個人汽車租賃合同綠色出行附加服務4篇
- 2025年度智能機器人研發(fā)與技術服務合作協議書4篇
- 2025年陜西西安人才市場有限公司招聘筆試參考題庫含答案解析
- 第1本書出體旅程journeys out of the body精教版2003版
- 臺資企業(yè)A股上市相關資料
- 電 梯 工 程 預 算 書
- 羅盤超高清圖
- 參會嘉賓簽到表
- 機械車間員工績效考核表
- 2.48低危胸痛患者后繼治療評估流程圖
- 人力資源管理之績效考核 一、什么是績效 所謂績效簡單的講就是對
- 山東省醫(yī)院目錄
- 云南地方本科高校部分基礎研究
- 廢品管理流程圖
評論
0/150
提交評論