博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据结构——二叉树的特性
阅读量:4098 次
发布时间:2019-05-25

本文共 755 字,大约阅读时间需要 2 分钟。

原文地址:

我们已经在第一章中介绍了二叉树,在这一章,介绍一下二叉树的特性。

1)一个二叉树中第 l 层的节点最大数目为

2l1

这里的“层”指的是从根节点到指定节点的路径上的节点数。根在第1层。

这个可以通过归纳法证明。

对于根, l=1 ,节点数 =211=1
假设在 l 层的最大节点数为
2l1
因为在二叉树中每个节点最多有两个孩子节点,下一层将会又两倍的节点,比如: 22l1

2)一个高度为 h 的二叉树的节点的最大数为

2h1

这里的高度指的是一个树根节点到叶子节点的节点数目最多的路径。一个叶子节点的高度认为是1.

这个结果可以从上面的第二点推出。如果没一层的节点数都是最大的,那么这个树就有最多的节点数。所以一个高度为 h 的二叉树的最大节点数是

1+2+4+..+2h1
。这是一个有n项的简单的等比数列,这个数列的和是 2h1

在一些书籍中,叶子节点的层数认为是0。如果按照这个约定,那么上面的公式就写为 2h+11

3)一个二叉树有N个节点,那么这个二叉树的最小可能树高或者是最小层数可能是 log2(N+1)

这可以直接从上面的第二点得出。如果我们考虑叶子节点的层数为0,那么上述式子的最小可能的高度是 log2(N+1)1

4)有L个叶子节点的二叉树至少有 log2L+1

当每层都填满的时候,那么这个二叉树就有最大的叶子节点数。假设所有的叶子节点都在l层,那么下面的式子就是L层的叶子节点的数:

L<=2l1 [来自第一点]

log2L<=l1
l>=Log2L+1

5)在二叉树中,叶子节点的数目总是比有两个孩子的节点的数目多1

L = T + 1在这里 L = 叶子节点的数目      T = 有两个孩子的内部节点数目

转载地址:http://zkhii.baihongyu.com/

你可能感兴趣的文章
XML工具代码:SAX从String字符串XML内获取指定节点或属性的值
查看>>
时间日期:获取两个日期相差几天
查看>>
责任链模式 Chain of Responsibility
查看>>
高并发与大数据解决方案概述
查看>>
解决SimpleDateFormat线程安全问题NumberFormatException: multiple points
查看>>
MySQL数据库存储引擎简介
查看>>
处理Maven本地仓库.lastUpdated文件
查看>>
Java并发编程1-线程池
查看>>
CentOS7,玩转samba服务,基于身份验证的共享
查看>>
计算机网络-网络协议模型
查看>>
计算机网络-OSI各层概述
查看>>
Java--String/StringBuffer/StringBuilder区别
查看>>
mySQL--深入理解事务隔离级别
查看>>
分布式之redis复习精讲
查看>>
数据结构与算法7-栈
查看>>
线性数据结构学习笔记
查看>>
Java并发编程 | 一不小心就死锁了,怎么办?
查看>>
(python版)《剑指Offer》JZ01:二维数组中的查找
查看>>
(python版)《剑指Offer》JZ06:旋转数组的最小数字
查看>>
(python版)《剑指Offer》JZ13:调整数组顺序使奇数位于偶数前面
查看>>