当前位置: 首页 > news >正文

0901(044天 集合框架08 树TreeMap)

0901(044天 集合框架08 树TreeMap)

每日一狗(旺名)

集合框架08 树TreeMap

文章目录

  • 0901(044天 集合框架08 树TreeMap)
  • 集合框架08 树TreeMap
    • 1. 树
      • 1.1 二叉搜索树
        • 二叉树的特点
        • 插入数据
        • 平衡二叉树
      • 1.2 红黑树:
        • 问:特殊方法
        • 问:HashMap和TreeMap的综合使用
      • 1.3 总结:HashMap、TreeMap和Hashtable
        • 不同点
      • 1.4 二级标题
    • 2. TreeMap
      • 2.1 源码
      • 2.2 二级标题
      • 2.3 二级标题
      • 2.4 二级标题
    • 3. 一级标题
      • 3.1 二级标题
      • 3.2 二级标题
      • 3.3 二级标题
      • 3.4 二级标题
    • 扩展小芝士
  • 模板备份开始
    • 4. 一级标题
      • 4.1 二级标题
      • 4.2 二级标题
      • 4.3 二级标题
      • 4.4 二级标题
  • 模板备份结束

1. 树

满二叉树:全都满了,只有度为0/2的节点,2^k-1

完全二叉树:除了最后一层其它层是一个满二叉树,最后一层从左往右插入

1.1 二叉搜索树

二叉搜索树BST:

定义:一个二叉树中,任意节点的值要大于等于左子树所有节点的值(左节点最小)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AcaR3aLd-1662039594447)(assets/image-20220901160554728.png)]

引入原因:为了解决双向链表的递归检索问题。

二叉树的特点

  • 左 小 右 大
  • 左 > 根 > 右

插入数据

平衡二叉树

二叉树在极端情况下会退化为单向链表,在此之内引入了平衡树的概念,左右子树的高度差最大为1,然后左右子树也都是一个平衡二叉树。

使用左旋右旋算法解决二叉树的不平衡问题。

1.2 红黑树:

一种近似平衡的二叉树,插入删除插入都快。

为了减少左旋右旋的代价,提出了红黑树

问:红黑树的概念

  • 节点不是就是黑
  • 根节点永远是黑的
  • 叶子到根节点不能有连续两个红节点
  • 补全的节点到根节点的黑节点数量相同

问:特殊方法

获取特殊节点的特殊方法

  • 获取第一个节点
  • 获取一个比指定key节点紧邻一点的一个节点
  • 获取一个比指定key节点紧邻一点的一个节点

问:HashMap和TreeMap的综合使用

一般就直接先用HashMap,当你需要全局顺序时在转换成TreeMap进行使用。

1.3 总结:HashMap、TreeMap和Hashtable

不同点

  1. 元素特性
  2. 顺序特性
  3. 初始化和增长方式
  4. 线程安全

1.4 二级标题


2. TreeMap

根据红黑树进行实现,与哈希算法无关

2.1 源码

构造器中可以传入一个比较器,无参就没有比较器

2.2 二级标题

2.3 二级标题

2.4 二级标题


3. 一级标题

3.1 二级标题

3.2 二级标题

3.3 二级标题

3.4 二级标题


扩展小芝士

  • 看源码的时候先看构造器,就可以找到一些比较重要的属性

模板备份开始


4. 一级标题

4.1 二级标题

4.2 二级标题

4.3 二级标题

4.4 二级标题

模板备份结束

相关文章:

  • 【数据结构】栈(stack)
  • 【MyBatis笔记09】MyBatis中常用的几个动态SQL标签
  • Apache Geode<1.15.0 不受信任的反序列化漏洞
  • GitLab 中 GitHub 导入 API 存在远程代码执行漏洞
  • 什么是生成器 — 一篇文章让你看懂
  • 国内近五年人工智能教育的研究热点及趋势——基于多维尺度和社会网络分析的方法
  • QGraphicsItem鼠标拖动旋转(五)
  • win7连接打印机0x0000011b错误的解决办法
  • 四、RocketMq本地集群搭建:多master-slaver异步
  • pcan二次开发文档 | PEAK-System Documentation
  • R语言数据分组聚合实战:使用aggregate函数对mtcars数据通过两个分类变量进行数据分组聚合、并计算分组的均值、使用na.rm删除异常值
  • Chapter15 : Artificial Intelligence in Compound Design
  • 前端HTML5 +CSS3 1. 基础认知
  • R语言替换字符串中指定字符的子串:sub函数查找字符串中第一个匹配到的子串并替换、如果要删除指定字符串子串则将替换的子符串设置为空字符串
  • java计算机毕业设计基于springboo大学生社团管理系统 vue+elementui
  • 5、React组件事件详解
  • canvas绘制圆角头像
  • CentOS7 安装JDK
  • php中curl和soap方式请求服务超时问题
  • REST架构的思考
  • Spark RDD学习: aggregate函数
  • spring cloud gateway 源码解析(4)跨域问题处理
  • supervisor 永不挂掉的进程 安装以及使用
  • Swift 中的尾递归和蹦床
  • TypeScript实现数据结构(一)栈,队列,链表
  • XForms - 更强大的Form
  • 初探 Vue 生命周期和钩子函数
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 前端攻城师
  • 双管齐下,VMware的容器新战略
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • 自制字幕遮挡器
  • 阿里云ACE认证之理解CDN技术
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • ​LeetCode解法汇总518. 零钱兑换 II
  • ​MySQL主从复制一致性检测
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (定时器/计数器)中断系统(详解与使用)
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (万字长文)Spring的核心知识尽揽其中
  • (一)Java算法:二分查找
  • (原)Matlab的svmtrain和svmclassify
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • **PHP分步表单提交思路(分页表单提交)
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .net wcf memory gates checking failed
  • .net 简单实现MD5
  • .Net 中Partitioner static与dynamic的性能对比
  • .NET程序员迈向卓越的必由之路
  • .Net中间语言BeforeFieldInit