版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告三學(xué)校: 班級: 學(xué)號: 姓名: 日期: 程序名:作業(yè)二叉樹的遞歸操作.cpp一、上機(jī)實(shí)驗(yàn)的問題和要求:要求采用二叉鏈表作為存儲(chǔ)結(jié)構(gòu),完成二叉樹的建立,前序、中序和后序遍歷的操作,求所有葉子及結(jié)點(diǎn)總數(shù)的操作等。具體實(shí)現(xiàn)要求:基于先序遍歷的構(gòu)造算法:輸入是二叉樹的先序序列,但必須在其中加入虛結(jié)點(diǎn)以示空指針的位置。假設(shè)虛結(jié)點(diǎn)輸入時(shí)用空格字符表示。用廣義表表示所建二叉樹。用凹入表表示所建二叉樹。分別利用前序遍歷、中序遍歷、后序遍歷所建二叉樹。求二叉樹結(jié)點(diǎn)總數(shù),觀察輸出結(jié)果。求二叉樹葉子總數(shù),觀察輸出結(jié)果。交換各結(jié)點(diǎn)的左右子樹,用廣義表表示法顯示新的二叉樹。()二叉樹采用鏈接存儲(chǔ)結(jié)構(gòu),
2、其根結(jié)點(diǎn)指針為T,設(shè)計(jì)一個(gè)算法對這棵二叉樹的每個(gè)結(jié)點(diǎn)賦值:(注意要修改DataType類型)葉結(jié)點(diǎn)的值為3只有左孩子或右孩子的結(jié)點(diǎn)則其值分別等于左孩子或右孩子的值左、右孩子均有的結(jié)點(diǎn),則其值等于左、右孩子結(jié)點(diǎn)的值之和用廣義表表示法顯示所建二叉樹閱讀理解建立Huffman樹的算法,對該算法進(jìn)行運(yùn)行及調(diào)試。具體實(shí)現(xiàn)要求:調(diào)試并運(yùn)行Huffman算法,驗(yàn)算回家作業(yè)六的第3題。()求Huffman樹的帶權(quán)路徑長度WPL。二、程序設(shè)計(jì)的基本思想,原理和算法描述:(包括程序的結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),輸入/輸出設(shè)計(jì),符號名說明等)基本思想:對任意一棵二叉樹,試將其所有節(jié)點(diǎn)的左、右子樹交換。并將交換前、后不同的二叉樹
3、分別用前序、中序、和后序三種不同的方法進(jìn)行遍歷?;驹恚和揪€性表、特殊線性表相似,二叉樹也有順序和鏈?zhǔn)絻煞N基本的存儲(chǔ)結(jié)構(gòu)。因此針對不同的存儲(chǔ)結(jié)構(gòu),在實(shí)現(xiàn)左右子樹交換的過程中方法會(huì)有不同。在程序?qū)崿F(xiàn)過程中要求不同功能分別用單個(gè)的函數(shù)實(shí)現(xiàn),其中按層遍歷二叉樹的函數(shù)用順序方法實(shí)現(xiàn),其他函數(shù)用鏈?zhǔn)椒椒▽?shí)現(xiàn)?;驹恚海?)創(chuàng)建二叉樹。(2)用三種不同的方法遍歷交換左右子樹前的二叉樹。(3)交換二叉樹中所有結(jié)點(diǎn)的左右子樹。(4)用三種不同的方法遍歷交換左右子樹后的二叉樹。三、源程序及注釋:/要求采用二叉鏈表作為存儲(chǔ)結(jié)構(gòu),完成二叉樹的建立,前序、中序和后序遍歷的操作,求所有葉子及結(jié)點(diǎn)總數(shù)的操作等#i
4、nclude #include #include #include #define NULL 0typedef char DataType;typedef struct BinTNodeDataType data;struct BinTNode *rchild,*lchild;BinTNode,*BinTree;/創(chuàng)建二叉數(shù)void Create(BinTree *T)char ch;if(ch = getchar() = *)/輸入*時(shí)該節(jié)點(diǎn)為空*T = NULL;else*T = (BinTree)malloc(sizeof(BinTNode);(*T)-data = ch;Create(
5、&(*T)-lchild);Create(&(*T)-rchild);/先序遍歷二叉樹void PreOrder(BinTree T)if(T)printf(%c,T-data);PreOrder(T-lchild);PreOrder(T-rchild);/中序遍歷二叉樹void InOrder(BinTree T) if(T)InOrder(T-lchild);printf(%c,T-data);InOrder(T-rchild);/后序遍歷二叉樹void PostOrder(BinTree T)if(T)PostOrder(T-lchild);PostOrder(T-rchild);pri
6、ntf(%c,T-data);/用廣義表表示二叉樹void ListPrint(BinTree T)if(T)printf(%c,T-data);if(T-lchild != NULL | T-rchild != NULL)printf();ListPrint(T-lchild);if(T-lchild != NULL)printf(,);ListPrint(T-rchild);printf();/用凹入表表示二叉樹/*對于凹入表表示二叉樹,其實(shí)就是把二叉樹結(jié)點(diǎn)的深度表示出來*/void DisplayPrint(BinTree T,int lay)if(T)for(int i=0;idata
7、);DisplayPrint(T-lchild,lay+1);DisplayPrint(T-rchild,lay+1);/求結(jié)點(diǎn)的個(gè)數(shù)int Node(BinTree T)int static N=0;if(T)Node(T-lchild);N+;Node(T-rchild);return N;/求葉子的個(gè)數(shù)int Leaf(BinTree T)int static L=0;if(T)Leaf(T-lchild);if(!(T-lchild|T-rchild)/沒有左子樹和右子樹,就是葉子L+;Leaf(T-rchild);return L;/交換左子樹和右子樹void Change(BinT
8、ree *T)if(*T)BinTNode *temp;Change(&(*T)-lchild);Change(&(*T)-rchild);temp=(*T)-lchild;(*T)-lchild=(*T)-rchild;(*T)-rchild=temp;void main()BinTree T;printf(輸入先序序列:);Create(&T);printf(輸出先序遍歷:);PreOrder(T);printf(n);printf(輸出中序遍歷:);InOrder(T);printf(n);printf(輸出后序遍歷:);PostOrder(T);printf(n);printf(輸出廣
9、義表表示法:);ListPrint(T);printf(n);printf(輸出凹入表表示法:n);DisplayPrint(T,1);printf(結(jié)點(diǎn)的個(gè)數(shù):nodes = %dn,Node(T);printf(葉子的個(gè)數(shù):leaves = %dn,Leaf(T);Change(&T);printf(交換左右子樹,并用廣義表表示法:);ListPrint(T);printf(n);四、運(yùn)行輸出結(jié)果:五、調(diào)試和運(yùn)行程序過程中產(chǎn)生的問題及采取的措施:有語法錯(cuò)誤和打程序時(shí)的拼寫錯(cuò)誤,主要就是根據(jù)出錯(cuò)的地方進(jìn)行單方面的調(diào)試。六、對算法的程序的討論、分析,改進(jìn)設(shè)想,其它經(jīng)驗(yàn)教訓(xùn):在算法實(shí)現(xiàn)上,從算法的效率看,非遞歸方法具有較好的時(shí)間效率,遞歸方法書寫形式較為簡捷,更為直
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 丹棱縣2025上半年四川眉山市丹棱縣事業(yè)單位考核招聘博士研究生1人筆試歷年參考題庫典型考點(diǎn)附帶答案詳解(3卷合一)
- 中央2025年國家電網(wǎng)有限公司客戶服務(wù)中心高校畢業(yè)生招聘(第一批)筆試歷年備考題庫附帶答案詳解
- 2025重慶鏡辰美科技有限公司招聘筆試參考題庫附帶答案詳解
- 2025湖北交投實(shí)業(yè)發(fā)展有限公司服務(wù)區(qū)管理員遴選80人筆試參考題庫附帶答案詳解
- 2025河南鄭州航空港科創(chuàng)投資集團(tuán)有限公司“領(lǐng)創(chuàng)”社會(huì)招聘40人筆試參考題庫附帶答案詳解
- 2025江蘇南通市崇川區(qū)潛慧恒馨企業(yè)發(fā)展有限公司招聘100人筆試參考題庫附帶答案詳解
- 2025廣東廣州市恒嘉物業(yè)管理有限公司招聘4人筆試參考題庫附帶答案詳解
- 2025年湖北省新能源有限公司社會(huì)招聘24人筆試參考題庫附帶答案詳解
- 2025山東青島排水有限公司員工招聘3人筆試參考題庫附帶答案詳解
- 2025國網(wǎng)天津市電力公司高校畢業(yè)生招聘50人(第二批)筆試參考題庫附帶答案詳解
- 智能安全帽解決方案-智能安全帽
- 2024年版煙霧病和煙霧綜合征診斷與治療專家共識(完整版)
- 研學(xué)旅行指導(dǎo)手冊
- 大學(xué)生社會(huì)支持評定量表附有答案
- 植入式靜脈給藥裝置(輸液港)-中華護(hù)理學(xué)會(huì)團(tuán)體標(biāo)準(zhǔn)2023
- GB/T 2988-2023高鋁磚
- 東風(fēng)7電路圖解析
- 數(shù)字填圖系統(tǒng)新版(RgMap2.0)操作手冊
- JJF 1069-2012 法定計(jì)量檢定機(jī)構(gòu)考核規(guī)范(培訓(xùn)講稿)
- DFMEA編制作業(yè)指導(dǎo)書新版
- DB35∕T 1844-2019 高速公路邊坡工程監(jiān)測技術(shù)規(guī)程
評論
0/150
提交評論