- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
二叉树的参数计算
实验六 二叉树的参数计算
实验学时:2
实验类型:(综合型)
一、实验目的
1. 理解二叉树遍历算法的应用;
2. 掌握计算二叉树结点个数、高度、叶子结点个数算法实现;
3. 掌握交换二叉树左右子树以及复制一棵二叉树算法的实现;
4.
二、实验条件
Visual C++ 6.0
三、实验原理及相关知识
1.二叉树的存储结构描述;
2.求二叉树结点个数、高度、叶子结点个数算法的基本思想;
3.交换二叉树左右子树以及复制一棵二叉树算法的基本思想。
四、实验步骤
1.确定存储结构,写出二叉链表结构类型的具体定义。
2.二叉树参数计算的算法实现
(1)求结点个数、高度、叶子结点个数、交换二叉树左右子树以及复制一棵二叉树的递归算法的基本思想及算法实现;
(2)求结点个数、叶子结点个数的非递归算法的基本思想及算法实现;
五、思考题及其它
1. 二叉树遍历算法求解二叉树的其他相关问题。
2. 树的遍历算法的实现。
3. 赫夫曼编码和解码算法实现。
【参考程序】
#includestdio.h
#includemalloc.h
#include math.h
#define MaxSize 20
typedef int ElemType;
#define OK 1
int count;
typedef struct BiTNode
{
ElemType data;
struct BiTNode *lchild, *rchild;
}BiTNode,*BiTree;
//建立二叉树(按先序序列生成二叉树,#表示空节点)
void CreateBiTree(BiTree *T)
{
char ch;
scanf(%c,ch);
getchar();/*回车键(每次输入一个字符后,需敲回车键)*/
if(ch==#)
{
printf(不产生子树。\n);
*T=NULL;
}
else
{
if(!(*T=(BiTNode *)malloc(sizeof(BiTNode))))
{
printf(分配空间失败);
return;
}//生成一个新节点
(*T)-data = ch;
printf(产生左右子树。\n);
CreateBiTree(((*T)-lchild)) ;
CreateBiTree(((*T)-rchild)) ;
}
}
int Count_Tree(BiTree t)//计算二叉树的结点个数。
{
int lcount,rcount;
if(t==NULL) return 0;
lcount=Count_Tree(t-lchild); //求左子树的结点个数
rcount=Count_Tree(t-rchild); //求右子树的结点个数
return lcount+rcount+1;
}
int NCount_Tree(BiTree t)//非递归算法计算二叉树的结点个数。
{
}
int Height(BiTree t) //计算二叉树的高度
{
int h1,h2;
if(t==NULL) return 0;
else
{
h1=Height(t-lchild); //求左子树的高度
h2=Height(t-rchild);
if(h1h2) return h1+1; //求右子树的高度
return h2+1;
}
}
void Countleaf(BiTree t,int * count) //计算二叉树的叶子结点的个数
{
if(t==NULL) *count=0;
if(t-lchild==0 t-rchild==0) (*count)++;
if(t-lchild!=0) Countleaf(t-lchild,count);
if(t-rchild!=0) Countleaf(t-rchild,count);
}
void NCountleaf(BiTree t,int *count) //非递归算法计算二叉树的叶子结点的个数
{
}
void Swapbitree(BiTree t) //交换二叉树的左右子树
{
BiTree p;
if(t==NULL) return;
Swapbitree(t-lchild); Swapbitree(t-rchild);
p=t-lchild; t-lchild=t-rchild; t-rchild=p;
}
void Copybitre
您可能关注的文档
- 乳腺癌患者健康教育讲课教案.ppt
- 了的用法教学文案.doc
- 事业编考试题库哲学试题及答案上课讲义.doc
- 事故应急预案台账上课讲义.doc
- 了解税收与劳动者的权力义务(ppt-77页)学习资料.ppt
- 事物形象PPT课件教学文案.ppt
- 二-安全生产业务操作规程知识分享.doc
- 事故防范与应急管理ppt课件教学内容.ppt
- 二、民航旅客运输基础知识1教学文案.ppt
- 二、竞争性谈判操作流程图电子教案.doc
- 福莱特玻璃集团股份有限公司海外监管公告 - 福莱特玻璃集团股份有限公司2024年度环境、社会及管治报告.pdf
- 广哈通信:2024年度环境、社会及治理(ESG)报告.pdf
- 招商证券股份有限公司招商证券2024年度环境、社会及管治报告.pdf
- 宏信建设发展有限公司2024 可持续发展暨环境、社会及管治(ESG)报告.pdf
- 品创控股有限公司环境、社会及管治报告 2024.pdf
- 中信建投证券股份有限公司2024可持续发展暨环境、社会及管治报告.pdf
- 洛阳栾川钼业集团股份有限公司环境、社会及管治报告.pdf
- 361度国际有限公司二零二四年环境、社会及管治报告.pdf
- 中国神华能源股份有限公司2024年度环境、社会及管治报告.pdf
- 广西能源:2024年环境、社会及治理(ESG)报告.pdf
最近下载
- 行政事业单位内部控制关键岗位责任制及其人员管理模板.docx
- 鼻部透明质酸注射__培训课件.pptx
- 九年级化学上册教学课件《实验活动2 水的组成及变化的探究》.pptx VIP
- 江西省2022年中小学教师招聘考试高中历史试卷及答案.docx VIP
- 2025年二建法规三色速记手册.pdf
- 高职院校“创意培养、创新实践、创业孵化”三创融合课程体系构建研究与实践.docx VIP
- 初中信息技术python编程作业设计.docx
- 2025年福建厦门中考地理试题【含答案】 .pdf VIP
- 离职催告函模版.docx
- (二模)2024~2025 学年度苏锡常镇四市高三教学情况调研(二) 物理试卷(含答案).pdf
文档评论(0)