#include "stdio.h"
#include "malloc.h"

typedef struct BiTNode{
    char data;   /*结点的数据域*/
    struct BiTNode *lchild , *rchild;  /*指向左孩子和右孩子*/
} BiTNode , *BiTree;
/*创建一棵二叉树*/
void CreatBiTree(BiTree *T)
{
    char c;
    scanf("%c",&c);
    if(c == ' ') *T = NULL;
    else{
       *T = (BiTNode * )malloc(sizeof(BiTNode));  /*创建根结点*/
        (*T)->data = c;    /*向根结点中输入数据*/
        CreatBiTree(&((*T)->lchild));  /*递归地创建左子树*/
        CreatBiTree(&((*T)->rchild));  /*递归地创建右子树*/
    }
}

/*计算二叉树的深度*/
void getDepth(BiTree T,int n,int *level)
{
   if(T!=NULL)
   {
        if(n> *level)
        {
            *level = n;
        }
        getDepth(T->lchild,n+1,level);
        getDepth(T->rchild,n+1,level);
   }
}

int getBitreeDepth(BiTree T)
{
    int level = 0;
    int n = 1;
    getDepth(T,n,&level);
    return level ;
}

main()
{
    BiTree T = NULL;    /*最开始T指向空*/
    printf("Input some characters to create a binary tree \n");
    CreatBiTree(&T);    /*创建二叉树*/
    printf("\nThe depth of the binary tree is %d\n",getBitreeDepth(T));
    getchar() ;
    getchar() ;
}

编程计算二叉树的深度相关推荐

  1. 计算二叉树的深度和叶子结点数

    目录 一.求给定二叉树的深度 二.求给定二叉树中的叶子结点数 三.例题 一.求给定二叉树的深度 二叉树的深度就是二叉树中结点的最大层次.如果二叉树是空树,则深度为0:否则,可分别求二叉树根的左子树和右 ...

  2. 计算二叉树的深度和叶子结点数(递归算法实现)

    [问题描述] 计算二叉树的深度和叶子结点数 [输入形式] 输入二叉树的先序遍历序列建立二叉树. [输出形式] 输出二叉树的叶子结点数和深度. [样例输入] A B C # # # # [样例输出] L ...

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

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

  4. 第2关:计算二叉树的深度和节点个数

    #include <iostream> #include "binary_tree.h"BiTreeNode* CreatBiTree(char* s, int &am ...

  5. 计算二叉树的深度和宽度

    计算二叉树的最大深度和最大宽度 #include<stdio.h> #include<stdlib.h> #include<string.h> #define Ma ...

  6. 计算二叉树深度算法(递归、非递归)入门详解

    一.引言 二叉树在应用时,经常需要知道二叉树的深度.二叉树的深度就是二叉树的层数,即从树根算起,到最底下一层的层数是多少,即二叉树中结点的最大层次值. 本文给出了计算二叉树深度的算法,包括递归算法和非 ...

  7. 完全二叉树与满二叉树的区别+计算二叉树深度

    1.完全二叉树与满二叉树的区别: 满二叉树:深度为k且有2^k-1个结点的二叉树称为满二叉树.  完全二叉树:设二叉树的深度为h,除第 h 层外,其它各层 (1-h-1) 的结点数都达到最大个数,第 ...

  8. 二叉树求深度的递归的详细分析

    >数据结构:typedef struct BINODE{TELEMETYPE data;struct BINODE *lchild,*rchild;}BiNode,*BiTtree;>递归 ...

  9. 求二叉树的深度递归算法

    这个算法相对来说比较简单,但我在一个小问题上卡了很久,记录一下. 这个问题主要是关于递归函数中 l(左子树的深度记录)和 r(右子树的深度记录)的值如何传递的问题. 首先算法如下: //计算二叉树的深 ...

  10. 给定一棵二叉树,计算该二叉树的深度、总节点个数和叶子节点个数。

    // // binary_tree.cpp // BinaryTreeApp // // Created by ljpc on 2018/5/3. // Copyright © 2018年 ljpc. ...

最新文章

  1. Silicon Labs收购业界RTOS厂商
  2. 类库探源——System.Exception
  3. getRectSubPix函数
  4. 收了100元辛苦费,写了一个最简单的C#ASP.NET的3层架构例子代码,源码是通过代码生成器生成的【写程序的效率神奇的高】...
  5. SHADER效果收集
  6. opencv如何显示中文?
  7. Arduino ESP8266编程深入要点
  8. Git入门教程(1)
  9. QoS流量监管和流量整形配置实例
  10. iOS 使用FMDB进行数据库操作
  11. 如何判断单链表里面是否有环【转载】
  12. 绿盾无法修改服务器地址,天锐绿盾V5.50.170626最新版修改说明
  13. php 泛型编程,泛型是什么,C++泛型编程又是什么?
  14. 医院体检PEIS系统
  15. 【SDX62】useradd: group ‘input‘ does not existERROR: libsystemdq: useradd command did not succeed.
  16. PNG图片背景透明-简单方法
  17. 谷歌浏览器无法使用谷歌翻译解决办法
  18. 线性变换+DFT(离散傅立叶变换)+滤波
  19. 配置Tomcat错误页面重定向
  20. CPU到计算机刷新速度,计算机CPU运算速度是多少

热门文章

  1. 通过dll来引用webservice的方法(.net)
  2. ie/ff动态的添加属性、事件
  3. 三目运算符?:结合性
  4. SPOJ Problem 1419:A Game with Numbers
  5. web服务器去掉域名www的301重定向设置方法
  6. STC学习:光敏开关
  7. oracle数据库注册服务,oracle 共享服务联接静态注册服务
  8. 1081 Rational Sum (20 分) 分数计算+最大公约数
  9. pypi.python.org_https://pypi.python.org/pypi/ssh
  10. Python(二十五):排序、反转