美文网首页
计算二叉树的深度和叶子数(递归)

计算二叉树的深度和叶子数(递归)

作者: K29 | 来源:发表于2017-03-11 22:19 被阅读0次
#include <stdio.h>
#include <stdlib.h>

typedef char DataType;
typedef struct Node{
    DataType data;
    struct Node *lchild,*rchild;
    
} TreeNode,*BinTree;

//创建二叉树
createTree(BinTree *t){ 
    char c;
    scanf("%c",&c); 
    if(c=='.'){
        *t = NULL;
    }else{
        *t = (TreeNode*)malloc(sizeof(TreeNode));
        (*t)->data = c;
        
        createTree(&(*t)->lchild);
        createTree(&(*t)->rchild);
    }
}
//计算深度

int treeDepth(BinTree *t){
    
    int deep = 0 ;
    int left = 0;
    int right = 0;
    
    if(*t== NULL){
        return deep;
    }
    left = treeDepth(&(*t)->lchild);
    right = treeDepth(&(*t)->rchild);
    
    deep = right>left?right:left;
    deep++;
    return deep;
}

//计算叶子结点个数
int TreeLeaf(BinTree *t){
    static int num=0;
    
    if(*t== NULL){
        return num;
    }   
    if((*t)->lchild==NULL&& (*t)->rchild==NULL){    
        num++;
    }
    TreeLeaf(&(*t)->lchild);
    TreeLeaf(&(*t)->rchild);

    return num;
}

void main(){
    int deep=0;
    int leaf =0;
    BinTree t = NULL;
    createTree(&t); 

    deep = treeDepth(&t);
    printf("树的深度:%d\n",deep);

    leaf = TreeLeaf(&t);
    printf("树的叶子结点个数:%d\n",leaf);
    
}

相关文章

  • 计算二叉树的深度和叶子数(递归)

  • 运用

    递归应用,计算二叉树的深度和二叉树的高度。自顶向下和自顶向上的思路

  • 记一次Tree的遍历

    统计利用先序遍历创建的二叉树的深度 利用先序递归遍历算法创建二叉树并计算该二叉树的深度。先序递归遍历建立二叉树的方...

  • 二叉树

    二叉树实现 本程序实现二叉树的构造以及三种遍历的递归与非递归算法、求叶子数和节点数,以及判断一个节点是否是叶子等操...

  • 2021-06-26二叉树

    分类 树、二叉树二叉查找树平衡二叉树、红黑树递归树 重点 计算公式 节点高度 = 节点到叶子节点的最长路径(边数)...

  • 二叉树最大最小深度的递归非递归实现

    一、二叉树最大深度 二叉树的最大深度是根节点到叶子节点的最大长度 1.1 最大深度的递归实现 传入根节点,得到左右...

  • 【404】 二叉树所有的左叶子之和

    题目:计算给定二叉树的所有左叶子之和。 二叉树遍历一般用递归来解决,主要是找到递归结束的点,本次左叶子之和=右子树...

  • leetcode上二叉树和递归 java

    二叉树天然的递归结构104. 二叉树的最大深度 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节...

  • 二叉树笔试面试题集合

    二叉树深度 判断平衡二叉树 一种方法 可以利用求二叉树深度,从根节点开始递归。再求左右深度进行比较。最后求到叶子节...

  • 5. 深度优先、广度优先

    1. 二叉树的深度优先遍历和广度优先遍历2. 深度优先搜索递归和非递归实现 深度优先(DFS):前序遍历 广度优先...

网友评论

      本文标题:计算二叉树的深度和叶子数(递归)

      本文链接:https://www.haomeiwen.com/subject/wbizgttx.html