数据结构与算法实验报告(2)
数据结构实验报告
题目: 树 班级:网络工程1401班 学号: 1408020106 指导教师: 高峰 日期: 2016/7/6
实验二:树
一:实验要求
掌握二叉树,二叉树排序数的概念和存储方法。
掌握二叉树的遍历算法。
熟练掌握编写实现树的各种运算的算法。
二.实验内容
统计一棵二叉树中每种类型节点数(度为0/1/2的节点数)。
三:实验过程及步骤
#include
typedef struct BitNode{ int data;
struct BitNode *lchild,*rchild; }BitNode,*BitTree; BitTree BitTreeInit(){ BitTree BT;
BT=(BitNode*)malloc(sizeof(BitNode)); BT=NULL; return BT; }
BitTree BitTreeCreat(BitTree &BT){ int ch;
printf(\请输入节点的内容,输入0时结束建立!\\n\ scanf(\ if(ch==0) BT=NULL; else{
BT=(BitTree)malloc(sizeof(BitNode)); BT->data=ch;
BitTreeCreat(BT->lchild); BitTreeCreat(BT->rchild); }
return BT; }
void BitTreeEmpty(BitTree BT){ if(BT==NULL)
printf(\树为空!\\n\
else
printf(\树非空!\\n\ }
void PreOrderTraverse(BitTree BT){ if(BT!=NULL){
printf(\树结点的内容为:%d\\n\ PreOrderTraverse(BT->lchild); PreOrderTraverse(BT->rchild); } }
void InOrderTraverse(BitTree BT){ if(BT!=NULL){
InOrderTraverse(BT->lchild);
printf(\树结点的内容为:%d\\n\ InOrderTraverse(BT->rchild); } }
void PostOrderTraverse(BitTree BT){ if(BT!=NULL){
PostOrderTraverse(BT->lchild); PostOrderTraverse(BT->lchild);
printf(\树结点的内容为:%d\\n\ } }
int count(BitTree BT){ if(BT==NULL) return 0; else
return(count(BT->lchild)+count(BT->rchild)+1); }
int BinTreeDepth(BitTree BT){ int i=1,j=1; if(BT==NULL) return 0; else {
i=BinTreeDepth(BT->lchild); j=BinTreeDepth(BT->rchild); if(i>j)
return(i+1); else
return (j+1); } }
void BinTreeClear(BitTree &BT){ if(BT){
if(BT->lchild)
BinTreeClear(BT->lchild); if(BT->rchild)
BinTreeClear(BT->rchild); free(BT); BT=NULL; } } main(){
int i=1,j,l; BitTree BT; while(i!=0){
printf(\欢迎使用-------------------\\n\ printf(\请选择要进行的操作\\n\
printf(\初始化一棵树 2.建立一棵树 3.判断树是否为空\\n\ printf(\按前序遍历树 5.按中序遍历树 6.按后序遍历树\\n\ printf(\求树的深度 8.求树的结点数 9.把树清空\\n\ printf(\退出操作界面\\n\
printf(\谢谢使用-------------------\\n\ scanf(\ switch(j){
case 1:BT=BitTreeInit();printf(\树已经初始化!\\n\ case 2:BitTreeCreat(BT);break; case 3:BitTreeEmpty(BT);break; case 4:PreOrderTraverse(BT);break; case 5:InOrderTraverse(BT);break; case 6:PostOrderTraverse(BT);break;
case 7:l=BinTreeDepth(BT);printf(\树的深度为:%d\\n\ case 8:l=count(BT);printf(\树的结点数为:%d\\n\ case 9:BinTreeClear(BT);printf(\树已经清空!\\n\ case 0:exit(0); } } }
步骤:
1.选择进行的操作
2.初始化、建立、判断树是否空、先/中/后序遍历、求深度/结点,清空树 3.显示结果
四:实验结果及分析
分析:
本程序不仅可以统计一棵二叉树中每种类型节点数(度为0/1/2的节点数)。
同时让他有以下功能:1.初始化一棵树。2.建立一棵树。3.判断树是否为空。4.分别按先/中/后序遍历树。5.求树的深度。6.求树的结点数。7.清空树。
…… 此处隐藏:395字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [学前教育]MC9S12XS256RMV1 xs128芯片手册4
- [学前教育]安东尼语录经典语录
- [学前教育]e级gps控制测量技术设计书
- [学前教育]苏教版2022-2022学年八年级下学期期末
- [学前教育]装修公司推广 营销
- [学前教育]家政服务合同(完整版)
- [学前教育]湖北省2016届高三联考语文试题
- [学前教育]爱立信无涯学习系统LTE题库1-LTE基础知
- [学前教育]揭秘大众柴油车作弊软件原理
- [学前教育]人才流失原因及对策分析
- [学前教育]房屋建筑施工工程劳务分包合同
- [学前教育]国际贸易实务试卷A卷09.6
- [学前教育]校园废品回收活动计划方案书范文格
- [学前教育]电大成本会计试题及答案
- [学前教育]大学物理实验 华南理工出版社 绪论答案
- [学前教育]爱丁堡产后抑郁量表
- [学前教育]液压冲击的危害、产生原因与防止方法(
- [学前教育]学生工作总结高一学生期中考试总结_020
- [学前教育]人民医院医疗废物管理规章制度大全
- [学前教育]阳光维生素的巨大抗癌潜能阅读题答案.d
- 马云在云锋基金江苏论坛闭幕式的发言
- 试论小学体育教育中的心理健康教育-教
- 语文A版一年级下册《语文乐园一》教学
- 2021四川大学物理化学考研真题经验参考
- [人教A版]2015-2016学年高中数学 第二
- 终端网点销售返利协议书
- 江苏省2015年眼科学主治医师青光眼考试
- 2017年部编人教版八年级语文上册教案
- 十一中学七年级英语上册Unit7Howmuchar
- 以赛促教的创新性实验教学机制建设实践
- 平凉市崆峒区2015七年级下生物期末试题
- 琶洲(地块五)A、B塔楼1、2#塔吊基础
- 一级医院工作制度与人员岗位职责
- 2018北京西城区高三二模理科数学试题及
- 炒股密码线技术 - 图文
- 职高学生生涯发展辅导教案
- 语文人教版四年级上册8 世界地图引出的
- 最新最新人教版二年级上册全册数学教案
- 2017高考英语全国2卷精彩试题(有问题
- 普通心理学笔记




