版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
實用文檔實驗十三二叉樹非遞歸遍歷1.創(chuàng)建一個包含數(shù)字元素的完全二叉樹,使用switch函數(shù),根據(jù)用戶的輸入,同時具有如下功能:【1】初始化一個二叉樹提示:scanf("%d%d",&i,&x);//i是按滿二叉樹編號,節(jié)點應(yīng)有的序號,x是節(jié)點的數(shù)據(jù)先建立一個新節(jié)點,再利用性質(zhì)5,建立新節(jié)點與其雙親的左/右孩子的關(guān)系?!?】前序非遞歸遍歷,打印出各節(jié)點的數(shù)據(jù)【3】中序非遞歸遍歷,打印出各節(jié)點的數(shù)據(jù)【4】后序非遞歸遍歷,打印出各節(jié)點的數(shù)據(jù)【5】結(jié)束程序運行#include<stdio.h>#include<stdlib.h>structnode{ intdata; structnode*lc,*rc;};structnode*root;intm=0;main(){ intcord; structnode*creat(); voidpreorderz(structnode*t); voidinorder(structnode*t); voidpostorder(structnode*t); do { printf("\n主菜單\n"); printf("1建立二叉樹\n"); printf("2先序非遞歸遍歷\n"); printf("3中序非遞歸遍歷\n"); printf("4后序非遞歸遍歷\n"); printf("5結(jié)束程序運行\(zhòng)n"); printf("-----------------------------------\n"); printf("請輸入您的選擇(1,2,3,4,5)"); scanf("%d",&cord); switch(cord) { case1: { root=creat();//建立二叉樹 printf("建立二叉樹程序以執(zhí)行完,\n"); printf("請返回主菜單,用遍歷算法驗證程序的正確性\n"); }break; case2: { preorderz(root); }break; case3: { inorder(root); }break; case4: { postorder(root); }break; case5: { printf("二叉樹程序執(zhí)行完,再見!\n"); exit(0); } } }while(cord<=6);}structnode*creat(){ structnode*t,*q,*s[30]; inti,j,x; printf("i,x="); scanf("%d%d",&i,&x);//i是按滿二叉樹編號,節(jié)點應(yīng)有的序號,x是節(jié)點的數(shù)據(jù) while((i!=0)&&(x!=0)) { q=(structnode*)malloc(sizeof(structnode)); q->data=x; q->lc=NULL; q->rc=NULL;//建立新節(jié)點q s[i]=q; if(i==1) t=q;//t代表樹根節(jié)點 else { j=i/2;//i的雙親節(jié)點的編號 if((i%2)==0) s[j]->lc=q; else s[j]->rc=q; } printf("i,x="); scanf("%d%d",&i,&x); } return(t);}voidpreorderz(structnode*p)//前序非遞歸算法{ structnode*q,*s[30];//s輔助棧 inttop,bools; q=p;top=0;//棧頂指針 bools=1;//bools=1為真值繼續(xù)循環(huán);bools=0為假時???,結(jié)束循環(huán) do { while(q!=NULL) { printf("%6d",q->data);//訪問節(jié)點 top++; s[top]=q; q=q->lc; } if(top==0) bools=0; else { q=s[top]; top--; q=q->rc; } }while(bools); printf("\n");}voidinorder(structnode*p)//中序非遞歸遍歷{ structnode*s[30],*q; inttop,bools; q=p;top=0; bools=1; do { while(q!=NULL) { top++; s[top]=q; q=q->lc; } if(top==0) bools=0; else { q=s[top]; top--; printf("%6d",q->data);//訪問節(jié)點 q=q->rc; } }while(bools);}voidpostorder(structnode*p){ structnode*s[30],*s2[30],*q; inttop,bools; q=p;top=0; bools=1; do { while(q!=NULL) { top++; s[top]=q; s2[top]=1; q=q->lc; } if(top==0) bools=0; else { if(s2[top]==1) { s2[top]=2; q=s[t
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 食堂衛(wèi)生8s管理制度
- 衛(wèi)生院保安室工作制度
- 醫(yī)療衛(wèi)生數(shù)據(jù)管理制度
- 餐飲店后廚衛(wèi)生清潔制度
- 河南基層衛(wèi)生院管理制度
- 創(chuàng)建省衛(wèi)生縣城工作制度
- 則所衛(wèi)生日常巡檢制度
- 餐飲店衛(wèi)生間管理制度
- 村衛(wèi)生室公章管理制度
- 蛋糕店衛(wèi)生管理規(guī)章制度
- DB21-T 4279-2025 黑果腺肋花楸農(nóng)業(yè)氣象服務(wù)技術(shù)規(guī)程
- 2026廣東廣州市海珠區(qū)住房和建設(shè)局招聘雇員7人考試參考試題及答案解析
- 2026新疆伊犁州新源縣總工會面向社會招聘工會社會工作者3人考試備考題庫及答案解析
- 2026年上海高考英語真題試卷+解析及答案
- 池塘承包權(quán)合同
- JTG F40-2004 公路瀝青路面施工技術(shù)規(guī)范
- 三片飲料罐培訓(xùn)
- 副園長個人發(fā)展規(guī)劃
- 第九屆、第十屆大唐杯本科AB組考試真總題庫(含答案)
- 統(tǒng)編部編版九年級下冊歷史全冊教案
- 商業(yè)地產(chǎn)策劃方案+商業(yè)地產(chǎn)策劃方案基本流程及-商業(yè)市場調(diào)查報告(購物中心)
評論
0/150
提交評論