树的深度和高度

定义

深度:对于任意节点n,n的深度为从根到n的唯一路径长,根的深度为0;

高度:对于任意节点n,n的高度为从n到一片树叶的最长路径长,所有树叶的高度为0;

树的高度树的高度是它的所有节点中的最大深度

示例:

节点A的深度位0高度为3,节点F的深度为2高度为1,树的高度为3

在这里插入图片描述
参考
https://zh.wikipedia.org/wiki/%E6%A0%91_(%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84)
算法(第四版)p143

树的深度高度的定义在不同教材中存在一定差异。 树的深度可以这样理解,计算一个节点的深度,从根节点算起(从1开始计数),到该节点所经过的节点数(包括此节点)为该节点的深度,树中最大深度的节点的深度为树的深度,也就是说树从根结点开始往下数,叶子结点所在的最大层数称为树的深度[^2]。 对于树的高度,不同教材有不同定义。有的教材认为高度就是深度,即当层数是0、1、2、3时,深度 = 高度 = 3;当层数是1、2、3、4时,深度 = 高度 = 4 。而有的教材则认为树的高度是看一共有几层,不论根节点在第几层,树的高度只要看有几层就行了,例如层数是0、1、2、3或者1、2、3、4,树的高度都是四层[^1][^3]。 深度的定义是从上往下计算,高度的定义是从下往上计算,不过通常树的深度高度数值是一样的。同时,树中结点的层数规定在不同教材中也有不同,有的规定根结点在第0层,有的规定根结点在第1层,但原理相同,因教材而异[^3]。 ### 示例代码 以下是一个简单的Python类,用于模拟树结构并计算树的深度高度: ```python class TreeNode: def __init__(self, value): self.value = value self.children = [] def add_child(self, child_node): self.children.append(child_node) def tree_depth(node): if not node.children: return 1 return 1 + max(tree_depth(child) for child in node.children) # 假设树的高度与深度定义相同 tree_height = tree_depth # 构建一个简单的树 root = TreeNode(1) child1 = TreeNode(2) child2 = TreeNode(3) root.add_child(child1) root.add_child(child2) grandchild1 = TreeNode(4) child1.add_child(grandchild1) print("树的深度:", tree_depth(root)) print("树的高度:", tree_height(root)) ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值