多叉树 [数据结构与算法][Java]

本文探讨了为什么需要多叉树,指出二叉树在处理大量结点时可能出现的构建速度慢和高度大的问题,这会导致数据库查询效率降低。多叉树,如2-3树,通过减少树的高度来优化这些问题。2-3树是一种特殊的多叉树,由2结点和3结点组成,能够有效降低树的高度,提高查询效率。
摘要由CSDN通过智能技术生成

多叉树

在二叉树中每个结点只能有一个数据项, 并且最多有两个子节点, 如果允许每个结点可以有更多的数据项和更多的子节点, 那么就是多叉树
  • 多叉树: multiway tree
那么我们为什么要提出多叉树?

因为二叉树有一定的问题: 即使二叉树的操作效率高, 但是也存在问题: 二叉树需要加载的内存的时候, 如果二叉树的结点少, 那么没有什么问题, 但是如果二叉树的结点有很多(比如: 有一亿个结点), 就存在如下问题:

  1. 在构建二叉树时, 如果构建二叉树的数据是从文档中或者从数据库(DB)中加载的, 那么海量的结点, 构建二叉树时的速度就会很慢
  2. 如果结点很多, 也会造成二叉树的高度很大, 操作的效率就会降低, 因为树结构的操作效率和树的高度是息息相关的
    • 在数据库查询中, 以树存储数据, 树有多少层, 就意味着要读多少次磁盘I/O
      • 所以树的高度越低, 就意味着查询数据时, 需要读IO的次数就越少(众所周知, 读IO时候一件费时的操作)
      • 因为我们查询的时候查询的次数就是树的高度次数, 所以树的高度就决定了要和多少次IO
后面我们讲解的2-3树, 2-3-4树就是多叉树, 多叉树通过重新组织结点, 减少树的高度, 能对二叉树进行优化
2-3树举例:

在这里插入图片描述

我们将上面中结点有两个数据项的结点称之为: “3结点”, 将上面结点中只有一个数据项的结点称之为:“2结点”
  • 2-3树就是由2结点和3结点构成的树
2-3树和2-3-4树都是B树的一种, 我们后面在讲B树的时候会专门对2-3树进行讲解
  • 2-3树是最简单的B树
  • 对于2-3树中的"2结点"来讲: 其要么是没有子节点, 要么是有两个子节点
  • 对于2-3树中的"3结点"来讲: 其要么是没有子节点, 要么是有三个子节点
  • 对于"2结点"和"3结点"没有子节点的时候就是做叶子结点的时候
2-3树其实就是一个三阶B树, 2-3-4树其实就是一个四阶B树

单词积累:

multiway : 多路的
  • multiway tree 多叉树
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值