链表=>二叉树=>平衡二叉树=>红黑树=>B-Tree=>B+Tree

1.链表

链表结构是由许多节点构成的,每个节点都包含两部分:

  1. 数据部分:保存该节点的实际数据。
  2. 地址部分:保存的是下一个节点的地址。

链表的特点:

  1. 结点在存储器中的位置是任意的,即逻辑上相邻的数 据元素在物理上不一定相邻
  2. 访问时只能通过头指针进入链表,并通过每个结点的 指针域向后扫描其余结点,所以寻找第一个结点和最后一 个结点所花费的时间不等

链表的优点:

  1. 数据元素的个数可以自由扩充 、插入、删除等操作不必移动数据,只需 修改链接指针,修改效率较

链表的缺点:

  1. 存储密度小 、存取效率不高,必须采用顺序存取,即存 取数据元素时,只能按链表的顺序进行访问

2.二叉树

由一个根结点及两棵互不相交的、分别称作这个根的左子树和右子树的二叉树组成。这个定义是递归的。由于左、右子树也是二叉树, 因此子树也可为空树。

二叉树在很大程度上解决了这个缺点,二叉树是按值来保存元素,也按值来访问元素。怎么做到呢,和链表一样,二叉树也是由一个个节点组成,不同的是链表用指针将一个个节点串接起来,形成一个链,如果将这个链“拉直”,就像平面中的一条线,是一维的。而二叉树由根节点开始发散,指针分别指向左右两个子节点,像树一样在平面上扩散,是二维的。

二叉排序树是一种比较有用的折衷方案。
数组的搜索比较方便,可以直接用下标,但删除或者插入某些元素就比较麻烦。
链表与之相反,删除和插入元素很快,但查找很慢。
二叉排序树就既有链表的好处,也有数组的好处。
在处理大批量的动态的数据是比较有用。

3.平衡二叉树

平衡二叉树追求绝对平衡

平衡二叉树的目的是为了减少二叉查找树层次,提高查找速度

4.红黑树

红黑树放弃了追求完全平衡,追求大致平衡

红黑树是二叉树的进化体也可以说是平衡二叉树

5.B-Tree

是一种多路搜索树

6.B+Tree

是大多数 MySQL 存储引擎的默认索引类型。因为不再需要进行全表扫描,只需要对树进行搜索即可,所以查找速度快很多。

因为 B+ Tree 的有序性,所以除了用于查找,还可以用于排序和分组。

B+ 树是一种树数据结构,是一个n叉树,每个节点通常有多个孩子,一棵B+树包含根节点、内部节点和叶子节点。根节点可能是一个叶子节点,也可能是一个包含两个或两个以上孩子节点的节点。

B+树是应文件系统所需而出的一种B-树的变型树   更适合文件索引系统  在B-树基础上,为叶子结点增加链表指针

7.索引

红黑树等平衡树也可以用来实现索引,但是文件系统及数据库系统普遍采用 B+ Tree 作为索引结构,这是因为使用 B+ 树访问磁盘数据有更高的性能。

最新文章

  1. Git分布式版本控制教程
  2. windows下修复Linux引导 and linux下几个常用软件
  3. 解决windows防火墙无法启动的问题
  4. ecshop编辑器fckeditor换百度ueditor编辑器教程
  5. 你所不知道的黑客工具之 EK 篇
  6. 标准库string类型简述
  7. void (*f(int, void (*)(int)))(int) 函数解析 转
  8. Python-elementTree方法解析xml文件-01
  9. WPF datagrid 如何隔行变色
  10. 微软Tech Summit 2017,微软携手Unity打造MR之夜
  11. CSS height:100%无效
  12. batch gradient descent(批量梯度下降) 和 stochastic gradient descent(随机梯度下降)
  13. shell基础:位置参数变量
  14. 利用PHP脚本辅助MySQL数据库管理1-表结构
  15. for循环遍历数组(数组1)
  16. ext js/Ext.Net_演示 htmleditor 上传&插入图片
  17. Python读文本文件
  18. Java多线程-Java多线程概述
  19. 学习JVM
  20. steam更新出错 应用运行中

热门文章

  1. FL Studio新手入门:FL Studio五大常用按钮介绍
  2. Free-Form Image Inpainting with Gated Convolution
  3. 如何在word中插入代码
  4. DataTable 将一列转为List
  5. Golang 实现 Redis(8): TCC分布式事务
  6. IntelliJ IDEA 2020.3正式发布,年度最后一个版本很讲武德
  7. PyQt(Python+Qt)学习随笔:QTabWidget选项卡部件概述和属性介绍
  8. SA-IS学习笔记
  9. 题解-Ehab's REAL Number Theory Problem
  10. KM 算法