二叉樹(shù)的生成和遍歷.docx

二叉樹(shù)的生成和遍歷.docx

ID:62052889

大?。?82.53 KB

頁(yè)數(shù):20頁(yè)

時(shí)間:2021-04-16

二叉樹(shù)的生成和遍歷.docx_第1頁(yè)
二叉樹(shù)的生成和遍歷.docx_第2頁(yè)
二叉樹(shù)的生成和遍歷.docx_第3頁(yè)
二叉樹(shù)的生成和遍歷.docx_第4頁(yè)
二叉樹(shù)的生成和遍歷.docx_第5頁(yè)
資源描述:

《二叉樹(shù)的生成和遍歷.docx》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)

1、《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計(jì)報(bào)告———二叉樹(shù)的生成和遍歷專業(yè)信息管理與信息系統(tǒng)班級(jí)110514小組成員110514128湯文瑩110514129王玉玨110514130張蓓蕾110514131張慕琦課程設(shè)計(jì):二叉樹(shù)的生成和遍歷一、任務(wù)描述1.將二叉樹(shù)以廣義表形式存儲(chǔ)在一個(gè)TXT文件上,通過(guò)讀取TXT文件,建立二叉樹(shù);2.求樹(shù)的高度3.實(shí)現(xiàn)二叉樹(shù)的前序、中序和后序遍歷;4.將輸出結(jié)果存儲(chǔ)在文件內(nèi)。二、問(wèn)題分析1.設(shè)計(jì)思想以廣義表格式輸入一個(gè)二叉樹(shù),將其接收至一維數(shù)組中,利用棧結(jié)構(gòu)建立二叉鏈表樹(shù);通過(guò)先、中、后訪問(wèn)根結(jié)點(diǎn)遞歸算法遍歷二叉樹(shù);

2、利用隊(duì)列的入隊(duì)、出隊(duì)操作實(shí)現(xiàn)二叉樹(shù)的層次遍歷。例如:a(c(,d),f(g,))建立如下圖所示二叉樹(shù)。cadfg2.數(shù)據(jù)結(jié)構(gòu)定義隊(duì)列數(shù)組長(zhǎng)度#defineQueueMaxSize20定義棧數(shù)組長(zhǎng)度#defineStackMaxSize10定義二叉樹(shù)數(shù)據(jù)類型typedefcharElemType;structBTreeNode{ElemTypedata;structBTreeNode*left;structBTreeNode*right;}BTreeNode;3.主要模塊設(shè)計(jì)初始化二叉樹(shù)voidInitBTree(structBT

3、reeNode**BT)根據(jù)a所定義的二叉樹(shù)廣義表字符串建立對(duì)應(yīng)的存儲(chǔ)結(jié)構(gòu)voidCreateBTree(structBTreeNode**BT,char*a)前序遍歷二叉樹(shù)voidPreorder(structBTreeNode*BT){if(BT!=NULL){printf("%c",BT->data);/*訪問(wèn)根結(jié)點(diǎn)*/Preorder(BT->left);/*前序遍歷左子樹(shù)*/Preorder(BT->right);/*前序遍歷右子樹(shù)*/}}中序遍歷二叉樹(shù)voidInorder(structBTreeNode*BT){i

4、f(BT!=NULL){Inorder(BT->left);/*中序遍歷左子樹(shù)*/printf("%c",BT->data);/*訪問(wèn)根結(jié)點(diǎn)*/Inorder(BT->right);/*中序遍歷右子樹(shù)*/}}后序遍歷二叉樹(shù)voidPostorder(structBTreeNode*BT){if(BT!=NULL){Postorder(BT->left);/*后序遍歷左子樹(shù)*/Postorder(BT->right);/*后序遍歷右子樹(shù)*/printf("%c",BT->data);/*訪問(wèn)根結(jié)點(diǎn)*/}}由指針指向的一顆二叉樹(shù)的深

5、度intBTreeDepth(structBTreeNode*BT)按層遍歷由BT指針?biāo)赶虻亩鏄?shù)voidLevelorder(structBTreeNode*BT中序遍歷二叉樹(shù)深度主菜單先序遍歷后序遍歷廣度優(yōu)先遍歷結(jié)束將以廣義表形式輸入的二叉樹(shù)接收到數(shù)組str[80]中,成功建立二叉樹(shù)4.詳細(xì)設(shè)計(jì)1)二叉樹(shù)的建立其中mark的值1、2、3、4分別指str[i]為字母、‘(’、‘,’、‘)’;tag為左、右孩子的標(biāo)志;root=null檢查str[1~’