宏观角度树主要分为:有序树和无序树

无序树:严格来讲,因为无序树不便查找的特性,所以在我们日常生产过程中应用场景非常有限,所以在此不作为我们今天的讲解重点。

有序树

常见的有序树

哈夫曼树

俗称霍夫曼树或者最优二叉树。

应用场景:哈夫曼树的应用很广.
1.哈夫曼编码就是其在电讯通信中的应用之一,在电讯通信业务中,通常用二进制编码来表示字母或其他字符,并用这样的编码来表示字符序列。
2.广泛地用于数据文件压缩的十分有效的编码方法,其压缩率通常在20%~90%之间。

完全二叉树

对于一颗二叉树,假设其深度为d(d>1)。除了第d层外,其它各层的节点数目均已达最大值,且第d层所有节点从左向右连续地紧密排列,这样的二叉树被称为完全二叉树


满二叉树

是所有叶节点都在最底层的完全二叉树


平衡二叉树(AVL树)

当且仅当任何节点的两棵子树的高度差不大于1的二叉树



排序二叉树(二叉查找树(英语:Binary Search Tree),也称二叉搜索树、有序二叉树)

排序二叉树(BST)的要求:
1.若左子树不空,则左子树上所有节点的值均小于它的根节点的值
2.若右子树不空,则右子树上所有节点的值均大于它的根节点的值
3.左、右子树也分别为二叉排序树

排序二叉树是MySQL数据库索引的数据结构

树的应用场景

  1. xml,html等,那么编写这些东西的解析器的时候,不可避免用到树,示例:
  2. 文件系统的目录结构
    Linux操作系统就应用了文件目录树,目录树的起点是根目录,Linux文件系统中每一文件在此目录树中的文件名都是独一无二的,因为其包含从根目录开始的完整路径。
  3. MySQL数据库索引
    MySQL数据库生成索引的数据结构,就是应用了排序二叉树也称为搜索二叉树中的B+树。
  4. 路由协议也是使用了树的算法
    例如:STP生成树协议,确保网络中没有环路;SPF最优树协议,不仅确保没有环路,还保障网络路径最优即:网络路径代价最小。
  5. 数据文件压缩
    典型代表:哈夫曼树也称为最优二叉树。
    应用场景:哈夫曼树的应用很广.
    1.哈夫曼编码就是其在电讯通信中的应用之一,在电讯通信业务中,通常用二进制编码来表示字母或其他字符,并用这样的编码来表示字符序列。
    2.广泛地用于数据文件压缩的十分有效的编码方法,其压缩率通常在20%~90%之间。
  6. 深度优先搜索算法(英语:Depth-First-Search,简称DFS)是一种用于遍历或搜索树或图的算法。 沿着树的深度遍历树的节点,尽可能深的搜索树的分支。
  7. 红黑树
    示例:linux中进程的调度用的是红黑树。
  8. C4.5算法(基于信息增益率实现的决策树算法)、CART算法(基于基尼指数实现的决策树算法)

常见的树以及树的应用场景相关推荐

  1. B树、B+树、LSM树以及其典型应用场景

    前言 动态查找树主要有:二叉查找树.平衡二叉树.红黑树.B树.B+树.前面三种是典型的二叉查找树,查找的时间复杂度是O(log2N)与树的深度有关系,那么降低树的深度也就可以提升查找效率.这时就提出了 ...

  2. 空间数据结构(四叉树/八叉树/BVH树/BSP树/k-d树)

    转载说明: 原作者:KillerAery 出处:https://www.cnblogs.com/KillerAery/p/10878367.html 1 四叉树/八叉树 (Quadtree/Octre ...

  3. Trie(前缀树/字典树)及其应用

    from:https://www.cnblogs.com/justinh/p/7716421.html Trie,又经常叫前缀树,字典树等等.它有很多变种,如后缀树,Radix Tree/Trie,P ...

  4. 数据结构之树:树的介绍——9

    数据结构之树,介绍篇 树的基本定义 介绍:树(tree)是计算机中非常重要的数据结构,它的外形看起来像一颗倒挂着的的树,使用树这种结构可以描述生活中很多的事物,如族谱,单位的组织架构,xml,html ...

  5. 二叉树 红黑树 B树 B+树的优缺点

    前言 在MySQL中,无论是Innodb还是MyIsam,都使用了B+树作索引结构(这里不考虑hash等其他索引).本文将从最普通的二叉查找树开始,逐步说明各种树解决的问题以及面临的新问题,从而说明M ...

  6. 种树:二叉树、二叉搜索树、AVL树、红黑树、哈夫曼树、B树、树与森林

    虽然今天不是植树节,但是我今天想种树. 文章目录 树,什么是树? 二叉树 定义 二叉树的创建 二叉树的前中后序遍历 前序遍历: 中序遍历 后序遍历 已知前序.中序遍历结果,还原二叉树 已知后序.中序遍 ...

  7. HTTP协议漫谈 C#实现图(Graph) C#实现二叉查找树 浅谈进程同步和互斥的概念 C#实现平衡多路查找树(B树)...

    HTTP协议漫谈 简介 园子里已经有不少介绍HTTP的的好文章.对HTTP的一些细节介绍的比较好,所以本篇文章不会对HTTP的细节进行深究,而是从够高和更结构化的角度将HTTP协议的元素进行分类讲解. ...

  8. Dom树 CSS树 渲染树(render树) 规则、原理

      前端不可不学的浏览器渲染机制,阿里年年问,去一个栽一个.听说百度也在考这个,你还不准备学吗? 首先你要了解浏览器渲染的顺序:   1.构建dom 树   2.构建css 树   3.构建渲染树   ...

  9. AVL树、splay树(伸展树)和红黑树比较

    AVL树.splay树(伸展树)和红黑树比较 一.AVL树: 优点:查找.插入和删除,最坏复杂度均为O(logN).实现操作简单 如过是随机插入或者删除,其理论上可以得到O(logN)的复杂度,但是实 ...

最新文章

  1. Eclipse中的常用快捷键
  2. 信息安全系统设计基础第三周学习总结—20135227黄晓妍
  3. Spring Boot最新版集成邮件发送功能大全
  4. sqlmap地表最强sql注入检测工具学习使用
  5. 计算机健康教育应用的意义,【计算机信息论文】计算机信息在心理健康教育中的实效性(共2561字)...
  6. vb 字符串截取_VB进阶之玩转文件读写
  7. Pytorch使用记录
  8. 《Java高并发程序设计》读书笔记 第二章 并行程序基础
  9. 一步步学习SPD2010--第十四章节--在Web页面使用控件(2)--使用标准ASP.NET服务器控件...
  10. react项目案例_教程28——使用 react-rewired 配置基本的环境(项目)
  11. sqlmap使用教程(超详细)
  12. TabHost详细解析
  13. button渐变色 ios_ios文字设置渐变色
  14. PS图层蒙版、参考线显示边距、盖印图层
  15. 阻止软件连接网络(Win)
  16. Python语音助手
  17. 计算机qwerty键盘,QWERTY键盘输入
  18. 十三个提高远程办公效率的工具
  19. 在线教育和线下教育的优劣势
  20. Visual AssistX番茄助手的安装与基本使用

热门文章

  1. MLY翻译 -- 1.Why Machine Learning Strategy?
  2. 解决vue项目出现Navigating to current location (XXX) is not allowed 报错
  3. 2022年度调味品十大热门品牌排行
  4. UOJ #138. 【UER #3】开学前的涂鸦
  5. 华为p50不会用鸿蒙系统,华为p50会不会预装鸿蒙系统_华为p50会预装鸿蒙系统吗...
  6. Git + Github初入门
  7. 关于我的姓——袁(1)
  8. Re:从零开始的领域驱动设计
  9. 十进制进制法_关于二进制、十进制、八进制、十六进制数据转换计算方法详细总结...
  10. 虹科云课堂 | 干货不断!汽车专题直播月本周课程预告