首页 > 生活 > 生活妙招

二叉树的深度怎么算(完全二叉树的深度公式)

常驻编辑 生活妙招 2021-12-26 深度

w4h拜客生活常识网

5. get(Node x,Key key)方法

get(Node x,Key key)方法实现查询方法从根结点开始,如果要查询的key小于当前结点的key,则继续找当前结点的左子结点;如果要查找的key大于当前结点的key,则继续找当前结点的右子结点;如果要查找的key等于当前结点的key,则返回当前结点的value。w4h拜客生活常识网

具体的代码实现如下:w4h拜客生活常识网

带你全面的了解二叉树

w4h拜客生活常识网

通过上面的代码,我们可以看出 get()方法和 put()方法类似,都是通过递归调用实现的。w4h拜客生活常识网

6. delete(Key key)方法

delete(Key key)方法也是一样的思路,调用后面的重载方法就行了,代码实现如下:w4h拜客生活常识网

带你全面的了解二叉树

w4h拜客生活常识网

7. delete(Node x,Key key)方法

删除方法的实现思路,以最复杂的情况为例,首先找到被删除的结点,找到被删除结点右子树中的最小结点 minNode,删除右子树中的最小结点,让被删除结点的左子树成为最小结点 minNode 的左子树,让被删除结点右子树成为最小结点minNode的右子树,让被删除结点的父结点指向最小结点 minNode。w4h拜客生活常识网

具体的代码实现如下:w4h拜客生活常识网

带你全面的了解二叉树

w4h拜客生活常识网

带你全面的了解二叉树

w4h拜客生活常识网

既然代码已经写完了,接下来通过代码来验证一下,看看我们写得是否正确:w4h拜客生活常识网

带你全面的了解二叉树

w4h拜客生活常识网

答案输出:w4h拜客生活常识网

3w4h拜客生活常识网

李四w4h拜客生活常识网

2w4h拜客生活常识网

Nice,太好了,通过上述输出结果已经证明了程序是正确的。w4h拜客生活常识网

四、查找二叉树中最小和最大的键

比如二叉树中用来记录某个公司员工薪资和员工姓名数据,或者某班级学生们的排名和姓名数据。如何快速找出排名最高和最低的同学数据?w4h拜客生活常识网

这样的话,该怎么做呢?其实,一般还可以整理出如下四个方法,定义如下:w4h拜客生活常识网

带你全面的了解二叉树

w4h拜客生活常识网

1. min()方法

min()方法和上面提到的 get()和 put()方法类似,也可以使用下面的重载方法实现,具体代码如下:w4h拜客生活常识网

// 找出树中最小的键

public key min() {

return min(root).key;

}

2. min(Node x)方法

min(Node x)方法需要根据传入的结点位置,查找左子树中的最小的结点,如果为空,则直接返回空,具体代码实现如下:w4h拜客生活常识网

// 找出树中最小键所在的结点

public Node min(Node x) {

if (x == null) {

return x;

}

Node minNode = x;

while (minNode.left != null) {

minNode = minNode.left;

}

return minNode;

}

3. max()方法

max()方法和上面提到的 min()方法类似,也可以使用下面的重载方法实现,具体代码如下:

相关阅读:

  • 43码的鞋鞋柜深度应该是多少
  • 深度300的鞋柜能放43码的鞋吗
  • 怎么进入深度睡眠(如何冥想达到深度睡眠)
  • 宾得相机怎么样(宾得ks2深度评测)
  • 慕思3d床垫怎么样(u深度pe装机工具使用教程)
  • 佳能5d4怎么样(佳能5d4深度评测)
  • 深度睡眠多久(做一次睡眠监测要住院吗)
  • 多久深度睡眠(一般入睡后多久是熟睡)
  • 为什么这么能睡(深度睡眠被触摸知道吗)
  • 怎么安装xp系统 深度xp系统安装教程?
    • 网站地图 |
    • 声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不做权威认证,如若验证其真实性,请咨询相关权威专业人士。