二叉树叶子结点个数计算

二叉树叶子结点个数计算

ID:11391052

大小:47.55 KB

页数:4页

时间:2018-07-11

二叉树叶子结点个数计算_第1页
二叉树叶子结点个数计算_第2页
二叉树叶子结点个数计算_第3页
二叉树叶子结点个数计算_第4页
资源描述:

《二叉树叶子结点个数计算》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、数据结构实验报告二叉树叶子结点个数计算姓名:许严班级:计122学号:12130230501.问题描述已知一棵二叉树,求该二叉树中叶子结点的个数。2.基本要求(1)设计二叉树的二叉链表存储结构。(2)设计求叶子结点个数的递归算法。(3)输入:一棵二叉树。(4)输出:二叉树中叶子结点的个数。3.实验提示(1)存储设计二叉树采用二叉链表为存储结构。typedefstructBiTNode{TElemTypedata;StructBiTNode*lchild,*rchild;//左右孩子指针}BiTNode,*BiTree;(2)算法设计求二叉树中叶子结点

2、个数,即求二叉树的所有结点中左右字数均为空的结点个数之和。可以将此问题转化为遍历问题,在遍历中“访问一个结点”时判断该结点是不是叶子,若是则将计数器累加。算法如下:VoidCountLeaf(BiNode*root,int&count)//前序遍历根指针为root的二叉树以计算叶子树count,假定count的初值为0{if(root!=NULL){If(root->lchild==NULL&&root->rchild==NULL)Count++;CountLeaf(root->lchild,count);//累计在左子树上的叶子数Count

3、Leaf(root->rchild,count);//累计右子树上的叶子数}}(3)程序如下#include#includeusingnamespacestd;structBiNode//二叉树的结点结构{chardata;BiNode*lchild,*rchild;};classBiTree{public:BiTree();//构造函数,初始化一棵二叉树,其前序序列由键盘输入4数据结构实验报告~BiTree(void);//析构函数,释放二叉链表中各结点的存储空间BiNode*Getroot();//获得指向根

4、结点的指针voidPreOrder(BiNode*root);//前序遍历二叉树voidBiTree::yezi(BiNode*root,int&n);private:BiNode*root;//指向根结点的头指针BiNode*Creat();//有参构造函数调用voidRelease(BiNode*root);//析构函数调用};BiTree::BiTree(){root=Creat();}BiTree::~BiTree(void){Release(root);}BiNode*BiTree::Getroot(){returnroot;}voidB

5、iTree::PreOrder(BiNode*root){if(root==NULL)return;else{cout<data<<"";PreOrder(root->lchild);PreOrder(root->rchild);}}voidBiTree::yezi(BiNode*root,int&n){if(root){if(root->lchild==NULL&&root->rchild==NULL)n++;yezi(root->lchild,n);yezi(root->rchild,n);}}BiNode*BiTree::Cre

6、at(){BiNode*root;4数据结构实验报告charch;cin>>ch;if(ch=='#')root=NULL;else{root=newBiNode;//生成一个结root->data=ch;root->lchild=Creat();//递归建立左子树root->rchild=Creat();//递归建立右子树}returnroot;}voidBiTree::Release(BiNode*root){if(root!=NULL){Release(root->lchild);//释放左子树Release(root->rchild);//

7、释放右子树deleteroot;}}voidmain(){cout<<"请输入二叉树的结点数据:";BiTreebt;//创建一棵树BiNode*root=bt.Getroot();//获取指向根结点的指针intn=0;cout<<"------前序遍历------"<

8、整的程序,觉得是不可能的,老是要参考或是搜集资料的。不参考吧,自己写的又一塌糊涂,自己也不明白。所以一直都很困扰,该怎么学

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。