二叉樹實驗報告_第1頁
二叉樹實驗報告_第2頁
二叉樹實驗報告_第3頁
二叉樹實驗報告_第4頁
二叉樹實驗報告_第5頁
已閱讀5頁,還剩2頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

實驗題目建立一棵用二叉鏈表方式存儲的二

叉樹,并進行遍歷(先序、中序、后通工班內序號:學生姓名:一、 實驗目的掌握用二叉鏈表創建二叉樹;掌握對樹的遍歷,先序、中序、后序、層次,用遞歸和算法。二、 實驗內容從鍵盤接受輸入先序序列,以二叉鏈表作為存儲結構,建立二叉樹(以先序來建立)并對其進行遍歷(先序、中序、后序、層次),然后將遍歷結果打印輸出。要求采用遞歸和非遞歸兩種方法實現。例如:測試數據:ABC..DE.G.F…輸出結果:先序:ABCDEGF中序:CBEGDFA后序:CGBFDBA層次:ABCDEFG三、 數據結構及算法思想創建函數的思想:首先讀入當前根結點的數據,如果是'',則將當前樹根置為空,否則申請一個空結點,存入當前根結點的數據,分別用當前根結點的左子域和右子域進行遞歸調用,創建左右子樹。二叉樹的遍歷方法是:按某條搜索路徑巡訪樹中每個結點,使得每個結點均被訪問一次,而且僅被訪問一次的過程。根據訪問結點的順序分為先序遍歷、中序遍歷和后序遍歷先序遍歷:訪問根結點按先序遍歷左子樹;按先序遍歷右子樹;中序遍歷:按中序遍歷左子樹;訪問根結點;按中序遍歷右子樹;后序遍歷:按后序遍歷左子樹;按后序遍歷右子樹;訪問根結點;四、 模塊劃分對各個模塊進行功能的描述voidGreateBiTree(BiTree*bt)〃建立二叉樹voidPreOrder(BiTreeroot)//先序遍歷voidInOrder(BiTreeroot)//中序遍歷voidPostOrder(BiTreeroot)//后序遍歷模塊之間關系及其相互調用的,定義結構主函數先序遍歷中序遍歷后序遍歷該樹可以表示為:運用遞歸算法,以先序為例:五、詳細設計及運行結果程序設計及編碼,測試數據,運行結果測試數據:ABC..DE.G.F…輸出結果:先序:ABCDEGF中序:CBEGDFA后序:CGBFDBA層次:ABCDEFG六、調試情況,設計技巧及體會這次試驗讓我對二叉樹的遍歷有了很好的了解,對于先序,中序,后序和層次遍歷有了好的掌握。編寫代碼前,應簡單的畫一個二叉樹,先弄清算法思想,在開始編程,應先對于各個模塊進行設計,調試,消除錯誤,當所有模塊都設計完成后,選擇正確的變量把所有模塊連接在一起,程序就設計完成,這樣才不會出現太多的錯誤,編程完以后,出現錯誤要知道調試,以得到正確結果。附:代碼#include<stdio.h>#include<stdlib.h>#include<string.h>#defineStack_Size50#defineMAXSIZE50typedefstructNode{chardata;structNode*LChild;structNode*RChild;}BiTNode,*BiTree;voidGreateBiTree(BiTree*bt){charch;ch=getchar();if(ch=='')*bt二NULL;else{(*bt)=(BiTree)malloc(sizeof(BiTNode));(*bt)->data二ch;GreateBiTree(&((*bt)->LChild));GreateBiTree(&((*bt)->RChild));}}voidPreOrder(BiTreeroot){if(root!二NULL){printf("%c",root->data);PreOrder(root->LChild);PreOrder(root->RChild);}}voidInOrder(BiTreeroot){if(root!二NULL){InOrder(root->LChild);printf("%c",root->data);InOrder(root->RChild);}}voidPostOrder(BiTreeroot){if(root!二NULL){PostOrder(root->LChild);PostOrder(root->RChild);printf("%c",root->data);}}voidmain(){inti;BiTreeroot;printf("CreateBin_Tree;InputPreOrder:");GreateBiTree(&root);do{printf("\t**********select************\n");printf("\tl:PreOrderTraversal\n");printf("\t2:InOrderTraversal\n");printf("\t3:PostOrdertraversal\n");printf("\tO:Exit\n");printf("\t*******************************\n");scanf("%d",&i);switch(i){case1:printf("PrintBin_treePreOrder:");PreOrder(root);break;case2:printf("PrintBin_TreeInOrder:");InOrder(root);break;cas

溫馨提示

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

評論

0/150

提交評論