-
红黑树
-
HashSet
-
Map
-
HashMap
-
TreeMap
==知识点梳理==
1.1红黑树-概述【了解】
1.什么是红黑树
平衡二叉B树,每一个节点可以是红或者黑,红黑树不是高度平衡的,它的平衡是通过"自己的红黑规则"进行实现的。
1.2 红黑树-红黑规则 (了解)
-
红黑树的红黑规则有哪些
-
每一个节点或是红色的,或者是黑色的
-
根节点必须是黑色
-
所有叶子节点(空的节点被称作叶子节点)都是黑色的
-
不能出现两个红色节点相连 的情况
-
对每一个节点,从该节点到其所有后代叶节点的简单路径上,均包含相同数目的黑色节点
-
1.3 红黑树-添加节点的默认颜色(了解)
添加节点时,默认为红色,效率高
1.4 红黑树-添加节点后,如何保证红黑规则1 【难点】
1.5 红黑树-添加节点后,如何保证红黑规则2 【难点】
(旋转之后,根据规则验证是否是红黑树,总结红黑树添加节点的规则)
1.6 红黑树练习-成绩排序案例【重点】
(共3点)
1.案例需求
-
用TreeSet集合存储多个学生信息(姓名,语文成绩,数学成绩,英语成绩),并遍历该集合
-
要求: 按照总分从低到高排序
代码实现
学生类
public class Student implements Comparable<Student> {
private String name;
private int chinese;
private int math;
private int english;
public Student() {
}
public Student(String name, int chinese, int math, int english) {
this.name = name;
this.chinese = chinese;
this.math = math;
this.english = english;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getChinese() {
return chinese;
}
public void setChinese(int chinese) {
this.chinese = chinese;
}
public int getMath() {
return math;
}
public void setMath(int math) {
this.math = math;
}
public int getEnglish() {
return english;
}
public void setEnglish(int english) {
this.english = english;
}
public int getSum() {
return this.chinese + this.math + this.english;
}