编程计算二叉树的深度
#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() ;
}
编程计算二叉树的深度相关推荐
- 计算二叉树的深度和叶子结点数
目录 一.求给定二叉树的深度 二.求给定二叉树中的叶子结点数 三.例题 一.求给定二叉树的深度 二叉树的深度就是二叉树中结点的最大层次.如果二叉树是空树,则深度为0:否则,可分别求二叉树根的左子树和右 ...
- 计算二叉树的深度和叶子结点数(递归算法实现)
[问题描述] 计算二叉树的深度和叶子结点数 [输入形式] 输入二叉树的先序遍历序列建立二叉树. [输出形式] 输出二叉树的叶子结点数和深度. [样例输入] A B C # # # # [样例输出] L ...
- 二叉树遍历算法的应用——计算二叉树的深度、计算二叉树的节点总数、计算二叉树的叶子节点数(均采用递归的思想)
//二叉树遍历算法的应用 //1.计算二叉树的深度 int Depth(BitTree T){if(T==NULL)return 0;//如果是空树,返回0else{m=Depth(T->lch ...
- 第2关:计算二叉树的深度和节点个数
#include <iostream> #include "binary_tree.h"BiTreeNode* CreatBiTree(char* s, int &am ...
- 计算二叉树的深度和宽度
计算二叉树的最大深度和最大宽度 #include<stdio.h> #include<stdlib.h> #include<string.h> #define Ma ...
- 计算二叉树深度算法(递归、非递归)入门详解
一.引言 二叉树在应用时,经常需要知道二叉树的深度.二叉树的深度就是二叉树的层数,即从树根算起,到最底下一层的层数是多少,即二叉树中结点的最大层次值. 本文给出了计算二叉树深度的算法,包括递归算法和非 ...
- 完全二叉树与满二叉树的区别+计算二叉树深度
1.完全二叉树与满二叉树的区别: 满二叉树:深度为k且有2^k-1个结点的二叉树称为满二叉树. 完全二叉树:设二叉树的深度为h,除第 h 层外,其它各层 (1-h-1) 的结点数都达到最大个数,第 ...
- 二叉树求深度的递归的详细分析
>数据结构:typedef struct BINODE{TELEMETYPE data;struct BINODE *lchild,*rchild;}BiNode,*BiTtree;>递归 ...
- 求二叉树的深度递归算法
这个算法相对来说比较简单,但我在一个小问题上卡了很久,记录一下. 这个问题主要是关于递归函数中 l(左子树的深度记录)和 r(右子树的深度记录)的值如何传递的问题. 首先算法如下: //计算二叉树的深 ...
- 给定一棵二叉树,计算该二叉树的深度、总节点个数和叶子节点个数。
// // binary_tree.cpp // BinaryTreeApp // // Created by ljpc on 2018/5/3. // Copyright © 2018年 ljpc. ...
最新文章
- Silicon Labs收购业界RTOS厂商
- 类库探源——System.Exception
- getRectSubPix函数
- 收了100元辛苦费,写了一个最简单的C#ASP.NET的3层架构例子代码,源码是通过代码生成器生成的【写程序的效率神奇的高】...
- SHADER效果收集
- opencv如何显示中文?
- Arduino ESP8266编程深入要点
- Git入门教程(1)
- QoS流量监管和流量整形配置实例
- iOS 使用FMDB进行数据库操作
- 如何判断单链表里面是否有环【转载】
- 绿盾无法修改服务器地址,天锐绿盾V5.50.170626最新版修改说明
- php 泛型编程,泛型是什么,C++泛型编程又是什么?
- 医院体检PEIS系统
- 【SDX62】useradd: group ‘input‘ does not existERROR: libsystemdq: useradd command did not succeed.
- PNG图片背景透明-简单方法
- 谷歌浏览器无法使用谷歌翻译解决办法
- 线性变换+DFT(离散傅立叶变换)+滤波
- 配置Tomcat错误页面重定向
- CPU到计算机刷新速度,计算机CPU运算速度是多少
热门文章
- 通过dll来引用webservice的方法(.net)
- ie/ff动态的添加属性、事件
- 三目运算符?:结合性
- SPOJ Problem 1419:A Game with Numbers
- web服务器去掉域名www的301重定向设置方法
- STC学习:光敏开关
- oracle数据库注册服务,oracle 共享服务联接静态注册服务
- 1081 Rational Sum (20 分) 分数计算+最大公约数
- pypi.python.org_https://pypi.python.org/pypi/ssh
- Python(二十五):排序、反转