2023年数据结构实验报告普本
《2023年数据结构实验报告普本》由会员分享,可在线阅读,更多相关《2023年数据结构实验报告普本(10页珍藏版)》请在装配图网上搜索。
1、实验三课程名称:数据结构班级:完毕日期:姓名:学号:指导教师:实验名称:二叉树的应用实验序号:实验成绩:一、实验目的及规定掌握二叉树的动态存储结构-二叉链表,掌握二叉树的三种遍历方法,会运用三种遍历的方法求解有关问题。二、实验环境硬件:计算机 软件:Microsoft Visual C+三、实验内容1. 以二叉链表作存储结构,建立一棵二叉树;2. 输出其先序、中序、后序遍历序列;3. 记录其叶子结点数;4. 求出它的深度。四、调试过程及实验结果五、总结通过本次实验,我了解了二叉树的建立与运营过程,在这次实验中也碰到不少困难,通过老师和同学的指导,最终完毕本次实验,受益匪浅。六、附录(源程序清单
2、)#include using namespace std;/定义树的结构typedef struct _binTree char data;_binTree *lNode,*rNode;binTree;/创建二叉树void createT(binTree *&rootNode,binTree *tempNode)if(rootNode=NULL)rootNode=tempNode;return;elseif(rootNode-data tempNode-data)createT(rootNode-lNode,tempNode);else if(rootNode-data data)creat
3、eT(rootNode-rNode,tempNode);/已创建的数void printT(binTree *rootNode)if(rootNode=NULL)return ;elseprintT(rootNode-lNode);coutdatarNode);/先序遍历二叉树void preTraverse(binTree *rootNode)if(rootNode=NULL)return ;elsecoutdatalNode);printT(rootNode-rNode);/中序遍历二叉树void midTraverse(binTree *rootNode)if(rootNode=NULL
4、)return ;elseprintT(rootNode-lNode);coutdatarNode);/后序遍历二叉树void lastTraverse(binTree *rootNode)if(rootNode=NULL)return ;elseprintT(rootNode-lNode);printT(rootNode-rNode);coutdatalNode)+nodeTotal(rootNode-rNode);/计算二叉树的深度int treeDepth(binTree *rootNode)if(rootNode=NULL)return -1;elseint lH=treeDepth(
5、rootNode-lNode);int rH=treeDepth(rootNode-rNode);if(lHrH)return lH+1;return rH+1;/计算叶子结点的个数int leafTotal(binTree *rootNode)if(rootNode=NULL)return 0;elseif(rootNode-lNode=NULL & rootNode-rNode=NULL)return 1;elseint lH=leafTotal(rootNode-lNode);int rH=leafTotal(rootNode-rNode);return rH+lH;int main()
6、binTree *rootNode,*tNode;rootNode=NULL;tNode=NULL;char ch;cout按照下面给出的顺序进行输入构建二叉树:endlF D B E A C J H K G I Lch;while(ch!=0)tNode=new binTree;tNode-data=ch;tNode-lNode=NULL;tNode-rNode=NULL;createT(rootNode,tNode);cinch;if(rootNode=NULL)coutTree is NULL.endl;elsecout正常输出二叉树的各节点数据:;printT(rootNode);coutendl;cout先序遍历二叉树的各节点数据:;preTraverse(rootNode);coutendl;cout中序遍历二叉树的各节点数据:;midTraverse(rootNode);coutendl;cout后序遍历二叉树的各节点数据:;lastTraverse(rootNode);coutendl;cout二叉树的深度为:treeDepth(rootNode)endl;cout二叉树的结点的个数为:nodeTotal(rootNode)endl;cout二叉树的叶子结点的个数为:leafTotal(rootNode)endl;return 0;
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。