数据结构与算法(一): 树的高度和深度的区别

1.高度

对于高度的理解,咱们无论他数据结构什么什么知识,就拿楼房来讲,假如一我的提问:楼房的高度有好高?咱们会下意识的从底层开始往上数,假如楼有6层,则咱们会说,这个楼有6层楼那么高,则提问者就会大概知道楼有多高了。因此高度就是以从下往上对比,这是咱们的习惯。而在树中,树的高度也是从下往上数,如图所示web

这里写图片描述

K节点在树的底层,是一个叶子节点,则通常定义为K的高度在最低为1,以此类推,O的高度也是为1,P的节点也是为1。M节点是叶子节点O的父节点,从下往上数,M节点高度为2。那么G节点的高度是多少呢?从G-L的高度为2,从G-M-O节点高度为3,到底G节点高度为多少呢,正确答案是3,请看定义:数据结构

高度的定义为:从结点x向下到某个叶结点最长简单路径中边的条数svg

注意:对因而否是边的条数这个不清楚,待我后来查证,这个主要是因为其初值是1仍是0来肯定的,通常都是以1开始.net

2.深度

理解了高度,则深度的理解就很容易了,深度是从根节点往下,列如上图中:B的深度为2。3d

3.总结

对于整棵树来讲,最深的叶结点的深度就是树的深度;树根的高度就是树的高度。这样树的高度和深度是相等的。
对于树中相同深度的每一个结点来讲,它们的高度不必定相同,这取决于每一个结点下面的叶结点的深度。xml

原文连接
http://blog.csdn.net/fanpei_moukoy/article/details/23828603blog