2024年二叉樹實驗報告_第1頁
2024年二叉樹實驗報告_第2頁
2024年二叉樹實驗報告_第3頁
2024年二叉樹實驗報告_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

試驗六、樹和二叉樹的操作壹、試驗目的1.深入掌握樹的構造及非線性特點,遞歸特點和動態(tài)性。2.深入鞏固對指針的使用和二叉樹的三種遍歷措施、建立措施。二、試驗內容二叉樹的實現(xiàn)和運算三、試驗規(guī)定1.用C++/C完畢算法設計和程序設計并上機調試通過。2.撰寫試驗匯報,提供試驗成果和數據。3.分析算法,并簡要給出算法設計小結和心得。四、程序實現(xiàn)#include<iostream.h>#include<stdlib.h>typedefcharDataType;typedefstructBitNode{ DataTypedata;structBitNode*lchild,*rchild;}*BitTree;voidBinTreeInit(BitTree&BT)//初始化二叉樹,即把樹根指針置空{ BT=(BitTree)malloc(sizeof(BitNode)); BT->data=NULL; cout<<"二叉樹初始化成功!"<<endl;}intBinTreeCreat(BitTree&BT)//按先序次序建立壹種二叉樹{ charch; cin>>ch; if(ch=='#')BT=NULL; else { if(!(BT=(BitTree)malloc(sizeof(BitNode)))) exit(0); BT->data=ch; BinTreeCreat(BT->lchild);BinTreeCreat(BT->rchild); }return0; //cout<<"按先序序列建立壹種二叉樹已經完畢!"<<endl;}voidBinTreeEmpty(BitTree&BT)//檢查二叉樹與否為空{ if(BT->data==NULL) cout<<"是空二叉樹!"<<endl; else cout<<"不是空二叉樹!"<<endl;}voidBinTraverse(BitTree&BT)//先序序列遍歷二叉樹{ if(BT!=NULL) { cout<<BT->data; BinTraverse(BT->lchild); BinTraverse(BT->rchild); }}intBinTreeDepth(BitTreeBT)//求二叉樹的深度{intdepthval;if(BT){intdepthLeft=BinTreeDepth(BT->lchild); intdepthRight=BinTreeDepth(BT->rchild);depthval=1+(depthLeft>depthRight?depthLeft:depthRight);}elsedepthval=0;returndepthval;}intBinTreeCount(BitTreeBT)//求二叉樹中所有結點數{intnode;if(BT){ intlchild=BinTreeCount(BT->lchild);intrchild=BinTreeCount(BT->rchild); node=lchild+rchild+1;}else node=0;returnnode;}voidmain(){ inti; BitTreeBT; cout<<"1、初始化二叉樹:"<<"\n2、按先序序列建立二叉樹"<<"\n3、判斷二叉樹與否為空:"; cout<<"\n4、先序序列遍歷二叉樹"<<"\n5、求二叉樹的深度"<<"\n6、求二叉樹節(jié)點的個數"<<endl; for(;;) { cout<<"輸出你所需的操作:"; cin>>i; if(i==1) BinTreeInit(BT); elseif(i==2) { cout<<"輸入你要建立的二叉樹:"<<endl; BinTreeCreat(BT); } elseif(i==3) BinTreeEmpty(BT); elseif(i==4) BinTraverse(BT); elseif(i==5) cout<<"二叉樹的深度:"<<BinTreeDepth(BT)<<endl; elseif(i==6) cout<<"二叉樹的節(jié)點數"<<BinTreeCount(BT)<<endl; else return; }}五、寫出輸入數據及運行成果六、心得體會樹是常用的數據構造。通過試驗加深了我對樹的遍歷的認識,鞏固了書本中所學的有關樹的基本算法。按規(guī)定完畢了試驗內容。通過試驗,有如下幾點收獲和體會:1、通過試驗還提高了壹點改錯能力,對于某些常見問題加深了印象。2、編程需要有耐心,尤其實在單步調試的時候,更是馬虎不得,有時候關鍵就是那么壹步,錯過了就得從頭來過了。編程也需要勇氣,要勇于發(fā)現(xiàn)自已的錯誤,也要勇于推翻自已之前的思緒,要堅信“沒有最佳,只有更好”。編程,最佳是壹鼓作氣,得每天“摸摸”它,時時想著它,要是過壹陣再去碰它那就得先去讀懂自已的程序了,壹切的壹切幾乎都得從頭開始。編程需要細心,有時壹種不注意小錯誤就能引出大問題。編程也需要規(guī)范,不僅為了他人能看得懂程序,也為了以便自已後來程序的更改與深入的完善。3、程序由算法和數據構造構成,壹種好的程序不僅算法重要,數據構造的設計也很重要。4、由于編程的積累,我發(fā)現(xiàn)調試程序的速

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論