聪明文档网

聪明文档网

最新最全的文档下载
当前位置: 首页> 二叉树叶子结点个数计算-

二叉树叶子结点个数计算-

时间:    下载该word文档

二叉树叶子结点个数计算


计算二叉树叶子结点


1.程序设计简介
已知一棵二叉树,求该二叉树中叶子结点的个数。

2.基本要求
1 计二叉树的二叉链表为存储结构 2 计求叶子结点个数的递归算法 3 入:一颗二叉树
4 出:二叉树中叶子结点的个数

3.实现提示
1)存储设计
二叉树采用二叉链表为存储结构 (2算法设计
求二叉树中叶子结点个数,即求二叉树的所有结点中左、右子树均为空的结点个数之和。可以将此问题转化为遍历问题,在遍历中“访问一个结点”时判断该结点是不是叶子,若是则将计数器累加。

4.源程序
#include #include
using namespace std;


struct BiNode //二叉树的结点结构
{
char data; BiNode *lchild, *rchild; };
class BiTree {
public: BiTree( ; //构造函数,初始化一棵二叉树,其前序序列由键盘输入
~BiTree(void; //析构函数,释放二叉链表中各结点的存储空间 BiNode* Getroot(; //获得指向根结点的指针 void PreOrder(BiNode *root; //前序遍历二叉树 void BiTree::yezi(BiNode *root,int &n; private: BiNode *root; //指向根结点的头指针 BiNode *Creat( ; //有参构造函数调用
void Release(BiNode *root; //析构函数调用 };
BiTree::BiTree( { root = Creat( ; }
BiTree::~BiTree(void { Release(root; }
BiNode* BiTree::Getroot( { return root; }
void BiTree::PreOrder(BiNode *root { if(root==NULL return; else{

cout<data<<" "; PreOrder(root->lchild;
PreOrder(root->rchild;





stacks; while(NULL!=root || !s.empty( { if(NULL!=root { s.push(root; root=root->lchild; } else { root=s.top(; // cout<data<<" "; if(NULL==root->lchild && NULL==root->rchild ++sum; s.pop(; root=root->rchild; } } cout<}
int main( { root=new node; root->data=100; node *a=new node; node *b=new node; node *a1=new node; node *a2=new node; node *b1=new node; node *b2=new node; a->data=200; b->data=300; a1->data=400; a2->data=500; b1->data=600; b2->data=700;



root->lchild=a; root->rchild=b;

a->lchild=a1; a->rchild=a2;

b->lchild=b1; b->rchild=b2;

a1->lchild=NULL; a1->rchild=NULL;

a2->lchild=NULL; a2->rchild=NULL;

b1->lchild=NULL; b1->rchild=NULL;

b2->lchild=NULL; b2->rchild=NULL;

mid(root;


return 0;
}



免费下载 Word文档免费下载: 二叉树叶子结点个数计算-

  • 29.8

    ¥45 每天只需1.0元
    1个月 推荐
  • 9.9

    ¥15
    1天
  • 59.8

    ¥90
    3个月

选择支付方式

  • 微信付款
郑重提醒:支付后,系统自动为您完成注册

请使用微信扫码支付(元)

订单号:
支付后,系统自动为您完成注册
遇到问题请联系 在线客服

常用手机号:
用于找回密码
图片验证码:
看不清?点击更换
短信验证码:
新密码:
 
绑定后可用手机号登录
请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系 在线客服