下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
本文為二叉鏈存儲結(jié)構(gòu)的二叉樹操作實現(xiàn),實現(xiàn)了二叉樹的定義、插入數(shù)據(jù)、刪除數(shù)據(jù)、撤銷以及二叉樹的打印、前序遍歷、中序遍歷、后序遍歷等。本項目工程包含2個頭文件(BiTree.h、BiTreeTraverse.h)和一個源文件(BiTree.cpp)。頭文件1BiTree.htypedefstructNode{DataTypedata; 〃數(shù)據(jù)域structNode*leftChild; 〃左子樹指針structNode*rightChild;〃右子樹指針}BiTreeNode; 〃結(jié)點的結(jié)構(gòu)體定義/*初始化創(chuàng)建二叉樹的頭結(jié)點*/voidInitiate(BiTreeNode**root){*root=(BiTreeNode*)malloc(sizeof(BiTreeNode));(*root)->leftChild=NULL;(*root)->rightChild=NULL;}/*若當(dāng)前結(jié)點curr非空,在curr的左子樹插入元素之為x的新結(jié)點*//*原curr所指結(jié)點的左子樹成為新插入結(jié)點的左子樹*//*插入成功則返回新插入結(jié)點的指針,否則返回空指針*/BiTreeNode*InsertLeftNode(BiTreeNode*curr,DataTypex){BiTreeNode*s,*t;if(curr==NULL)returnNULL;t=curr->leftChild; /*保留原curr所指結(jié)點的左子樹指針*/s=(BiTreeNode*)malloc(sizeof(BiTreeNode));s->data=x;s->leftChild=t; /*新插入結(jié)點的左子樹為原curr的左子樹*/s->rightChild=NULL;curr->leftChild=s; /*新結(jié)點成為curr的左子樹*/returncurr->leftChild;/*返回新插入結(jié)點的指針*/}/*若當(dāng)前結(jié)點curr非空,在curr的右子樹插入元素之為x的新結(jié)點*//*原curr所指結(jié)點的右子樹成為新插入結(jié)點的左子樹*//*插入成功則返回新插入結(jié)點的指針,否則返回空指針*/BiTreeNode*InsertRightNode(BiTreeNode*curr,DataTypex){BiTreeNode*s,*t;if(curr==NULL)returnNULL;t=curr->rightChild; /*保留原curr所指結(jié)點的右子樹指針*/s=(BiTreeNode*)malloc(sizeof(BiTreeNode));s->data=x;s->rightChild=t; /*新插入結(jié)點的右子樹為原curr的左子樹*/s->leftChild=NULL;curr->rightChild=s; /*新結(jié)點成為curr的右子樹*/returncurr->rightChild;/*返回新插入結(jié)點的指針*/}voidDestory(BiTreeNode**root){//二叉樹撤銷操作if((*root)!=NULL&&(*root)->leftChild!=NULL)Destory(&(*root)->leftChild);if((*root)!=NULL&&(*root)->rightChild!=NULL)Destory(&(*root)->rightChild);free(*root);}/*若curr非空,刪除curr所在結(jié)點的左子樹*//*刪除成功則返回刪除結(jié)點的雙親指針,否則返回空*/BiTreeNode*DeleteLeftTree(BiTreeNode*curr){if(curr==NULLIIcurr->leftChild==NULL)returnNULL;Destory(&curr->leftChild);curr->leftChild=NULL;returncurr;}/*若curr非空,刪除curr所在結(jié)點的右子樹*//*刪除成功則返回刪除結(jié)點的雙親指針,否則返回空*/BiTreeNode*DeleteRightTree(BiTreeNode*curr){if(curr==NULLIIcurr->rightChild==NULL)returnNULL;Destory(&curr->rightChild);curr->rightChild=NULL;returncurr;}頭文件2BiTreeTraverse.hvoidPreOrder(BiTreeNode*t,voidVisit(DataTypeitem)){//前序遍歷二叉樹t,訪問操作為Visit()函數(shù)if(t!=NULL){Visit(t->data);PreOrder(t->leftChild,Visit);PreOrder(t->rightChild,Visit);}}voidInOrder(BiTreeNode*t,voidVisit(DataTypeitem)){//中序遍歷二叉樹t,訪問操作為Visit()函數(shù)if(t!=NULL){PreOrder(t->leftChild,Visit);Visit(t->data);PreOrder(t->rightChild,Visit);}}voidPostOrder(BiTreeNode*t,voidVisit(DataTypeitem)){//后序遍歷二叉樹t,訪問操作為Visit()函數(shù)if(t!=NULL){PreOrder(t->leftChild,Visit);PreOrder(t->rightChild,Visit);Visit(t->data);}}測試主函數(shù)BiTree?cpp#include<stdlib.h>#include<stdio.h>typedefcharDataType;#include"BiTree.h"#include"BiTreeTraverse.h"voidVisit(DataTypeitem){//定義訪問函數(shù)printf("%c",item);}voidPrintBiTree(BiTreeNode*bt,intn){//定義打印函數(shù),遞歸調(diào)用inti;if(bt==NULL)return; 〃遞歸出口PrintBiTree(bt->rightChild,n+l);〃遍歷打印右子樹〃訪問根結(jié)點for(i=0;ivn;i++)printf(” ");if(n>=0){printf("---");printf(”%c\n",bt->data);}PrintBiTree(bt->leftChild,n+1);〃遍歷打印左子樹}voidmain(void){//測試主函數(shù)BiTreeNode*root,*p,*pp;〃遍歷二叉樹Initiate(&root);p=InsertLeftNode(root,'A');p=InsertLeftNode(p,'B');p=InsertLeftNode(p,'D');p=InsertRightNode(p,'G');p=InsertRightNode(root->leftChild,'C');pp=p;InsertLeftNode(p,'E');InsertRightNode(pp,'F');PrintBiTree(root,0);printf("前序遍歷:”);P
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度城市安全設(shè)施包工不包料施工管理協(xié)議3篇
- 2025年度戰(zhàn)略合作合同合作目標(biāo)與具體合作內(nèi)容3篇
- 二零二五年度城市基礎(chǔ)設(shè)施建設(shè)項目貸款合同6篇
- 課程設(shè)計區(qū)域標(biāo)志牌
- 綜合布線課程設(shè)計酒店
- 二零二五年度新型廠房出租安全管理合同2篇
- 2025年演講有創(chuàng)意的自我介紹(2篇)
- 2025年幼兒園中秋節(jié)演講稿例文(2篇)
- 軸承鍛造工藝課程設(shè)計
- 安全“零隱患”抵押責(zé)任制模版(2篇)
- 2024版Amazon店鋪代運營與品牌授權(quán)及維權(quán)服務(wù)合同3篇
- 影視作品價值評估-洞察分析
- 環(huán)境因素控制措施
- 2024年下學(xué)期學(xué)校德育工作總結(jié)
- 《電化學(xué)儲能系統(tǒng)艙大件運輸特殊要求》
- 2025年采購部工作計劃
- 《防范于心反詐于行》中小學(xué)防范電信網(wǎng)絡(luò)詐騙知識宣傳課件
- 江蘇某小區(qū)園林施工組織設(shè)計方案
- 勘察工作質(zhì)量及保證措施
- 墊江縣中醫(yī)院2018年11月份臨床技能中心教學(xué)設(shè)備招標(biāo)項目招標(biāo)文件
- 排放源統(tǒng)計(環(huán)統(tǒng))年報填報指南
評論
0/150
提交評論