乐观学习,乐观生活,才能不断前进啊!!!
我的主页:optimistic_chen
欢迎大家访问~
创作不易,大佬们点赞鼓励下吧~
前言
在正式谈到Map之前,我们需要对搜索有一个细致明确的认知,以达到我们对Map学习的基础。
二叉搜索树
又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树
性质:
- 若他的左子树不为空,则左子树上所有节点的值都小于根节点的值
- 若他的右子树不为空,则右子树上所有节点的值都大于根节点的值
- 他的左右子树也分别为二叉搜索树
查找
public Node search(int key) {
Node cur = root;
while (cur != null) {
if (key == cur.key) {
return cur;
} else if (key < cur.key) {
cur = cur.left;
} else {
cur = cur.right;
}
}
return null;
}
插入
考虑两种情况:
- 如果树是空树,直接插入
- 不是空树,按照搜索树性质,插入新节点
public boolean insert(int key) {
if (root == null) {
root = new Node(key);
return tr