



下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
實(shí)驗(yàn)三二叉樹(shù)操作實(shí)驗(yàn)時(shí)間:2011年4月28日12:50-15:50(地點(diǎn):7-215)實(shí)驗(yàn)?zāi)康模豪斫舛鏄?shù)的邏輯特點(diǎn)和二叉樹(shù)的性質(zhì);掌握二叉樹(shù)的二叉鏈表存儲(chǔ)結(jié)構(gòu),掌握二叉樹(shù)的遍歷算法的遞歸與非遞歸實(shí)現(xiàn)具體實(shí)驗(yàn)題目:(任課教師根據(jù)實(shí)驗(yàn)大綱自己指定)每位同學(xué)按下述要求實(shí)現(xiàn)相應(yīng)算法:以二叉鏈表為存儲(chǔ)結(jié)構(gòu),實(shí)現(xiàn)二叉樹(shù)的創(chuàng)建、遍歷算法1)問(wèn)題描述:在主程序中提供下列菜單: 1…建立樹(shù) 2…前序遍歷樹(shù) 3…中序(非遞歸)遍歷樹(shù)4…后序遍歷樹(shù) 0…結(jié)束2)實(shí)驗(yàn)要求:定義下列過(guò)程:CreateTree():按從鍵盤輸入的前序序列,創(chuàng)建樹(shù)PreOrderTree():前序遍歷樹(shù)(遞歸)InOrderTree():中序(非遞歸)遍歷樹(shù)LaOrderTree():后序遍歷樹(shù)(遞歸)1)算法設(shè)計(jì)思路簡(jiǎn)介在建立建立二叉樹(shù)的函數(shù)時(shí),開(kāi)始使二叉樹(shù)為空,str掃描完成循環(huán),先定義左節(jié)點(diǎn),再定義右節(jié)點(diǎn),p指向二叉樹(shù)的根結(jié)點(diǎn),在建立輸出二叉樹(shù)的函數(shù)時(shí),用括號(hào)法表示,先序遍歷遞歸順序是根,左,右,中序是左,根,右,后序是左,右,根。2)算法描述:可以用自然語(yǔ)言、偽代碼或流程圖等方式voidCreateBTNode(BTNode*&b,char*str)//由str串創(chuàng)建二叉樹(shù)voidDispBTNode(BTNode*b)//以括號(hào)表示法輸出二叉樹(shù)voidPreOrder(BTNode*b)//先序遍歷遞歸算法voidInOrder1(BTNode*b)//中序遍歷非遞歸算法voidPostOrder(BTNode*b)//后序遍歷遞歸算法3)算法的實(shí)現(xiàn)和測(cè)試結(jié)果:包括算法運(yùn)行時(shí)的輸入、輸出,實(shí)驗(yàn)中出現(xiàn)的問(wèn)題及解決辦法等二叉樹(shù)不能完全輸出,見(jiàn)截圖,我考慮過(guò)是由于字符串的長(zhǎng)度問(wèn)題影響,但經(jīng)過(guò)調(diào)整發(fā)現(xiàn)不是這里的問(wèn)題。代碼源:#include<stdio.h>#include<malloc.h>#defineMaxSize100typedefcharElemType;typedefstructnode{ElemTypedata;//數(shù)據(jù)元素structnode*lchild;//指向左孩子structnode*rchild;//指向右孩子}BTNode;voidCreateBTNode(BTNode*&b,char*str)//由str串創(chuàng)建二叉樹(shù){BTNode*St[MaxSize],*p=NULL;inttop=-1,k,j=0;charch;b=NULL;//建立二叉樹(shù)初始時(shí)為空ch=str[j];while(ch!='\0')//str未掃描完成循環(huán){switch(ch){case'(':top++;St[top]=p;k=1;break;//為左節(jié)點(diǎn)case')':top--;break;case',':k=2;break;//為右節(jié)點(diǎn)default:p=(BTNode*)malloc(sizeof(BTNode));p->data=ch;p->lchild=p->rchild=NULL;if(b==NULL)//p指向二叉樹(shù)根結(jié)點(diǎn)b=p;else//以建立二叉樹(shù)根結(jié)點(diǎn){switch(k){case1:St[top]->lchild=p;break;case2:St[top]->rchild=p;break;}}}j++;ch=str[j];}}voidDispBTNode(BTNode*b)//以括號(hào)表示法輸出二叉樹(shù){ if(b!=NULL) {printf("%c",b->data); if(b->lchild!=NULL||b->rchild!=NULL) {printf("("); DispBTNode(b->lchild); if(b->rchild!=NULL)printf(","); printf(")"); } } }voidPreOrder(BTNode*b)//先序遍歷遞歸算法{ if(b!=NULL) {printf("%c",b->data);//訪問(wèn)根結(jié)點(diǎn) PreOrder(b->lchild);//遞歸訪問(wèn)左子數(shù) PreOrder(b->rchild);//遞歸訪問(wèn)右子數(shù) }}voidInOrder1(BTNode*b)//中序遍歷非遞歸算法{ BTNode*St[MaxSize],*p; inttop=-1; if(b!=NULL) {p=b; while(top>-1||p!=NULL) {while(p!=NULL) {top++; St[top]=p; p=p->lchild; } if(top>-1) {p=St[top]; top--; printf("%c",p->data); p=p->rchild; } }printf("\n"); }}voidPostOrder(BTNode*b)//后序遍歷遞歸算法{ if(b!=NULL) {PostOrder(b->lchild);//遞歸訪問(wèn)左子數(shù) PostOrder(b->rchild);//遞歸訪問(wèn)右子數(shù) printf("%c",b->data);//遞歸訪問(wèn)根結(jié)點(diǎn) }}voidmain(){ BTNode*b; CreateBTNode(b,"A(B(D,E(H(J,k(L,M(,N))))),C(F,G(,I)))"); printf("二叉樹(shù)b:"); DispBTNode(b); printf("\n"); printf("先序遍歷序列:\n"); print
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 買賣集體老石器合同范本
- 付款合同范本含金額
- 代購(gòu)代付款合同范例
- 加工合同范本叫
- led標(biāo)識(shí)維護(hù)合同范本
- 保險(xiǎn)基金合同范本
- 個(gè)人電器購(gòu)買合同范本
- 加油站活動(dòng)合同范本
- 代用茶采購(gòu)合同范本
- 保安解聘合同范本
- 【幼兒教師與家長(zhǎng)溝通現(xiàn)狀、問(wèn)題及優(yōu)化建議分析7000字(論文)】
- 農(nóng)村公共管理復(fù)習(xí)題
- 一年級(jí)教師工作總結(jié)
- 2023新時(shí)代解決臺(tái)灣問(wèn)題的總體方略PPT
- 用車申請(qǐng)表格
- 甘蔗渣制備木聚糖的研究
- 電化學(xué)儲(chǔ)能電站運(yùn)行維護(hù)規(guī)程
- 酒店人力資源管理實(shí)務(wù)課件
- 中華八大菜系-川菜課件
- 說(shuō)明文試卷(含答案解析)
- 少年英雄(課件)小學(xué)生主題班會(huì)通用版
評(píng)論
0/150
提交評(píng)論