小知识,大挑战!本文正在参与「程序员必备小知识」创作活动
目录
- 前言
- 正文
-
- min()方法
-
- min(Node x)方法
-
- max()方法
-
-
max(Node x)方法
-
-
前言
日常生活中,很多事物都可以用树来描述,例如书的目录、工作单位的组织架构等等。树是计算机中非常重要的一种数据结构,树存储方式可以提高数据的存储、读取效率。
正文
比如二叉树中用来记录某个公司员工薪资和员工姓名数据,或者某班级学生们的排名和姓名数据。如何快速找出排名最高和最低的同学数据?
这样的话,该怎么做呢?其实,一般还可以整理出如下四个方法,定义如下:
1. min()方法
min()方法和上面提到的 get()和 put()方法类似,也可以使用下面的重载方法实现,具体代码如下:
// 找出树中最小的键
public key min() {
return min(root).key;
}
2. min(Node x)方法
min(Node x)方法需要根据传入的结点位置,查找左子树中的最小的结点,如果为空,则直接返回空,具体代码实现如下:
// 找出树中最小键所在的结点
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()方法类似,也可以使用下面的重载方法实现,具体代码如下:
// 找出树中最小的键
public key max() {
return max(root).key;
}
4. max(Node x)方法
max(Node x)方法需要根据传入的结点位置,查找右子树中的最大的结点,如果为空,则直接返回空,具体代码实现如下:
// 找出树中最大键所在的结点
public Node min(Node x) {
if (x == null) {
return x;
}
Node maxNode = x;
while (maxNode.right != null) {
maxNode = maxNode.right;
}
return maxNode;
}