版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/twilight_karl/article/details/53468024

二叉树采用链式储存结构,设计算法计算一颗给定的二叉树中叶子节点的数目

  1. 使用递归创建并初始化二叉树。当输入的数据不为“#”时,将该元素视为一个有效的元素,否则置为null。每次递归返回当前位置的子树。

  2. 计算二叉树的所有叶子节点的数量。当一个节点的左孩子和右孩子都为空时。他是叶子节点。使用递归如果能找到就返回1,如果节点为NULL返回0,否则返回count(t->lchild)+ count(t->rchild)

#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>typedef struct node{char data ;struct node * lchild;struct node * rchild;
}BiTree;BiTree * CreatTree();
int Count(BiTree * );
void Preorder(BiTree *);int main(){BiTree * top = NULL;top = CreatTree();printf("遍历结果: ");Preorder(top);putchar('\n');printf("叶子节点的个数: %d\n",Count(top));system("pause");return 0;
}BiTree * CreatTree(){BiTree *t;char ch ;ch = getchar();if (ch != '#'){t = (BiTree *)malloc(sizeof(BiTree));t ->data = ch ;t->lchild = CreatTree();t->rchild = CreatTree();}else{t=NULL;}return t;
}
int Count(BiTree * top){if(top == NULL){return 0;}else if ((top->lchild==NULL) && (top->rchild==NULL)){return 1;}else{return Count(top->lchild)+Count(top->rchild);}
}void Preorder(BiTree * top ){if(top != NULL){printf("%c ",top->data);Preorder(top->lchild);Preorder(top->rchild);}
}

计算二叉树叶子节点的数目相关推荐

  1. 西工大NOJ数据结构理论——016.计算二叉树叶子结点数目(耿6.14)

    一.初级思路 拿到题之后的好习惯--先在纸上写思路: 1.构建二叉树: char* BinTreeBuilding(PBinTreeNode ptr_node,char *ptr_str){//创建二 ...

  2. java计算二叉树的节点最小值_求二叉树根节点到叶子节点路径和的最小值:遍历(递归+非递归)...

    昨晚中兴笔试题,第一题是给定二叉树,每个节点的数据结构是 value,left,right,比较根节点到各个叶子节点路径和的大小,输出路径和的最小值.(补充:用ArrayList可以存储) 以前没做过 ...

  3. 求二叉树第K层的节点个数+求二叉树叶子节点的个数

    size_t _FindLeafSize(Node* root)     //求二叉树叶子节点的个数     {         //static size_t count = 0;          ...

  4. Pytorch 梯度计算,叶子节点,requires_grad,detach

    Pytorch 梯度计算,叶子节点,requires_grad,detach 前言 梯度计算 叶子节点 张量requires_grad属性修改,detach 前言 本篇记录pytorch中梯度相关内容 ...

  5. C语言二叉树叶子节点的求法

    C语言叶子节点的求法可以用递归来实现 1.使用递归实现叶子结点的求法 C语言中的二叉树叶子节点求法是一个比较基础的问题.在二叉树中,叶子节点是指没有子节点的节点.为了求出二叉树中的叶子节点,我们可以采 ...

  6. 获取二叉树叶子节点个数的递归及非递归算法

    递归算法 public static<T> int numOfLeavesInRecursion(BinaryTreeNode<T> root){ // 获取二叉树叶子节点的个 ...

  7. 二叉树遍历算法的应用——计算二叉树的深度、计算二叉树的节点总数、计算二叉树的叶子节点数(均采用递归的思想)

    //二叉树遍历算法的应用 //1.计算二叉树的深度 int Depth(BitTree T){if(T==NULL)return 0;//如果是空树,返回0else{m=Depth(T->lch ...

  8. 数据结构,计算二叉树叶子结点数 C语言实现

    树的存储结构 typedef struct BiTNode {char data;struct BiTNode* lchild, * rchild; }BiTNode, * BiTree; 代码实现 ...

  9. 二叉树叶子节点迭代器

    开始的想法是先将叶子节点放入到一个vector中,然后依次next 下面的解法类似,但是只有在Next操作时才寻找下一个叶子节点 template <typename T> class I ...

最新文章

  1. [Asp.net 5] Options-配置文件(2)
  2. 未经任何测试的源代码开放
  3. python爬取网易云音乐_Python 从零开始爬虫(七)——实战:网易云音乐评论爬取(附加密算法)...
  4. 查看安卓keystore别名
  5. 51NOD 1125(交换机器最小代价) (贪心) 思想 !思想!
  6. JAVA面试——计算机网络
  7. 【学习笔记】第二章——信号量机制 用信号量实现互斥、同步
  8. 元组可以直接添加进数据库吗_数据库篇-第一章:数据库基本概念
  9. bzoj4448 [Scoi2015]情报传递
  10. 地址栏引用PHP中变量,PHP 读取地址栏 参数
  11. .net core websocket
  12. C++中的向量vector
  13. unity下载官网地址
  14. ramda 函数 String
  15. gitlab hook declined错误
  16. JS获取手机型号和系统类型
  17. PQ分区出错,由Ghost来补救的办法(转)
  18. 欢迎你、某某某同学python_python123第一周作业
  19. V831——AprilTag标签识别
  20. 67. Add Binary 二进制加法leetcode

热门文章

  1. MQTT-SN协议乱翻之消息格式
  2. Oracle中的事务之savepoint
  3. (筆記) 如何在字串中從指定字元抓到指定字元(pointer版)?
  4. CNN-2: AlexNet 卷积神经网络模型
  5. JS基础_流程控制语句
  6. Microsoft SQL Server学习(二)
  7. 关于Jsp页面的jstl标签的级联属性的异常。
  8. UILabel自适应高、宽
  9. 运行ant脚本(转载)
  10. COJ 1163 乘法逆元的求解