【Java数据结构】---Map和Set(二叉搜索树)

乐观学习,乐观生活,才能不断前进啊!!!

我的主页:optimistic_chen

我的专栏:c语言Java

欢迎大家访问~
创作不易,大佬们点赞鼓励下吧~

前言

在正式谈到Map之前,我们需要对搜索有一个细致明确的认知,以达到我们对Map学习的基础。

二叉搜索树

又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树

性质:

  1. 若他的左子树不为空,则左子树上所有节点的值都小于根节点的值
  2. 若他的右子树不为空,则右子树上所有节点的值都大于根节点的值
  3. 他的左右子树也分别为二叉搜索树

在这里插入图片描述

查找

在这里插入图片描述

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;
 }

插入

考虑两种情况:

  1. 如果树是空树,直接插入
  2. 不是空树,按照搜索树性质,插入新节点
    在这里插入图片描述
public boolean insert(int key) {
   
    if (root == null) {
   
      root = new Node(key);
      return tr
评论 65
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值