写在前面:

 对于数据结构的学习,注定绕不开“树”这一起着重要作用的数据结构。“树”在整个数据结构的学习过程中具有举足轻重的地位,而与“树”相关的知识点,往往较为晦涩难懂且容易混淆、忘记。为此,打算根据自己的所学与所思,总结出较为常用的树的相关知识点,同时还记录了自动机的相关的知识,一方面用作自己的备忘录,另一方面,用作分享。为此,如有不对的地方,希望各位能够不吝指出。

ps:点击相关的标题,即可进入相关的博文查看与其相关的知识点,这篇博文更多的是作为目录使用

  1. 树与二叉树:树(英语:tree)是一种抽象数据类型(ADT)或是作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>0)个有限节点组成的一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。树形结构中数据元素之间具有一对多的逻辑关系,它反映了数据元素之间的层次关系,一个数据元素可以有多个后继,但最多只能有一个前驱。二叉树是树里面的一个特殊形态,每个节点最多只有两个分支(不存在分支度大于2的节点)。通常分支被称作“左子树”和“右子树”。二叉树的分支具有左右次序,不能颠倒。该博文主要介绍了树与二叉树之间相关的概念

  2. 二叉树:该博文主要介绍了二叉树的存储结构及其常见的操作,并给出了其相关代码

  3. 树、二叉树与森林之间的转换及其相关代码实现:树与二叉树之间,森林与二叉树之间可以相互转换,且这种转换是一一对应的。树与森林转化为二叉树之后,森林或树的相关操作都转换为二叉树的操作。该博文主要介绍了树的存储结构、树与二叉树、森林与二叉树之间的转换过程及其相关的代码

  4. 二叉查找树(BST):二叉查找树(英语:Binary Search Tree),也称二叉搜索树、有序二叉树(英语:ordered binary tree),排序二叉树(英语:sorted binary tree),二叉查找树相比于其他数据结构的优势在于查找、插入的时间复杂度较低。该博文主要介绍二叉查找树的相关内容。

  5. 哈弗曼树:哈弗曼(Huffman)树是一种在编码技术方面得到广泛应用的二叉树,它同时也是一种最优二叉树。该博文主要介绍了哈弗曼树相关内容

  6. 图相关的最小生成树(MST):该博文主要用于讲解图相关的两个最小生成树算法,即prim算法和Kruskal算法的思想及其实现

  7. 平衡二叉树(AVL):平衡二叉树(Balanced Binary Tree)又称为AVL树,它或是一棵空树,或是一棵左子树和右子树都是平衡二叉树,且左子树和右子树深度之差的绝对值不超过1的树。该博文主要讲解了平衡二叉树的相关知识点

  8. 红黑树:红黑树(Red Black Tree) 是一种自平衡二叉查找树,其是平衡二叉树的一种实现。在红黑树上的操作都有着良好的最坏情况下的运行时间,即能够保证O(logN)的时间内完成查找,插入和 删除操作,N表示的是红黑树中节点的个数。该博文主要用于讲解红黑树的相关知识点及其实现

  9. 跳表:跳表(SkipList)是一种随机化的数据结构,跳表虽然不是树,但是其性能和红黑树以及AVL树不相上下,且其实现原理简单。为此,将其和树的相关知识点放在一起,是为了更加深刻的理解和掌握相应的数据结构。

  10. B-树:B-tree树即B树,B即Balanced,平衡的意思。B-树是一种多路搜索树(并不一定是二叉的),在文件系统中,B-树已经成为索引文件的一种有效结构,并得到了广泛的应用。本博文主要用于讲解B-树相关的知识点及其实现

  11. B+树:B+树是一种树型数据结构,其是一个n叉排序树,每个节点通常有多个孩子。B+ 树通常用于数据库和操作系统的文件系统中。B+树的特点是能够保持数据稳定有序,其插入与修改拥有较稳定的对数时间复杂度。本博文讲解了B+树相关的知识点以及其实现

  12. 单词查找树(Trie):trie,又称前缀树或字典树,是一种有序树,用于保存关联数组,其中的键通常是字符串。Trie可以看作是一个确定有限状态自动机。与二叉查找树不同,键不是直接保存在节点中,而是由节点在树中的位置决定。一个节点的所有子孙都有相同的前缀,也就是这个节点对应的字符串,而根节点对应空字符串。一般情况下,不是所有的节点都有对应的值,只有叶子节点和部分内部节点所对应的键才有相关的值。Trie这个术语来自于retrieval。根据词源学。本博文主要讲解了单词查找树的相关知识及其实现。

  13. 伸展树:伸展树(Splay Tree),也叫分裂树,是一种二叉排序树,它能在O(logN)内完成插入、查找和删除操作。在伸展树上的一般操作都基于伸展操作:假设想要对一个二叉查找树执行一系列的查找操作,为了使整个查找时间更小,被查频率高的那些条目就应当经常处于靠近树根的位置。于是想到设计一个简单方法, 在每次查找之后对树进行重构,把被查找的条目搬移到离树根近一些的地方。伸展树应运而生。本博文介绍了伸展树的相关的知识点及其实现

  14. Treap(堆树):Treap=Tree+Heap。Treap是一棵二叉排序树,它的左子树和右子树分别是一个Treap,和一般的二叉排序树不同的是,Treap记录一个额外的数据,就是优先级。Treap在以关键码构成二叉排序树的同时,还满足堆的性质(在这里我们假设节点的优先级大于该节点的孩子的优先级)。但是这里要注意的是Treap和二叉堆有一点不同,就是二叉堆必须是完全二叉树,而Treap不一定是完全二叉树。该博文主要讲解了Treap树相关的知识点及其实现

  15. 有限状态自动机:有限状态机(英语:finite-state machine,缩写:FSM),简称状态机,有限状态自动机是一种特殊的状态机。它表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。该博文讲解了有限状态自动机的相关知识点及其应用示例。

转载于:https://www.cnblogs.com/MyStringIsNotNull/p/8270433.html

KandQ:那年,那树,那些知识点相关推荐

  1. mysql中b树是什么_MySQL优化中B树索引知识点总结

    为什么要进行SQL优化呢?很显然,当我们去写sql语句时: 1会发现性能低 2.执行时间太长, 3.或等待时间太长 4.sql语句欠佳,以及我们索引失效 5.服务器参数设置不合理 SQL语句执行过程分 ...

  2. 【精】iOS知识树,知识点(包括对象、Block、消息转发、GCD、运行时、runloop、动画、Push、KVO、tableview,UIViewController、提交AppStore)

    本文旨在总结iOS知识网络,知识点,该知识网络罗列出常见UIKit.Foundation的对象特点和一些使用经验,可以看成是一本书:文本编辑采用树的形式,对知识点进行罗列,并标注一些使用经验(★)希望 ...

  3. JAVA数据结构知识点,数据结构 树Tree 知识点总结 附Leetcode力扣练习题答案

    先来明确下树的概念:明确的父子关系 正确的示例: 错误的示例: 几个名词: 节点:线两端的点即节点 根节点:无父节点的节点 叶子节点:无子节点的节点 几个概念: 高度:从下到上,从0计数,根节点最高 ...

  4. 最优二叉树(哈夫曼树)知识点

    路径:在一棵树中从一个结点往下到孩子或孙子结点之间的通路 结点的路径长度:从根节点到该节点的路径上分支的数目 树的路径长度:树中每个结点的路径长度之和 结点的权:给树中的结点赋予一个某种含义的值,则该 ...

  5. 树的知识点总结-数据结构

    ** 一:树的基本术语 1.定义 树是一种非线性结构,只有一个根结点,除根结点外每个孩子结点可以有多个后继,没有后继的结点叫叶子结点. 2.概念 根结点:没有前驱: 孩子:有前驱的结点: 双亲结点:孩 ...

  6. 【写给自己的开发知识树】——知识点

    目录 8.知识点 8.1.内存知识点 8.2.TCP/IP.Socket知识点 8.3.编译连接知识点 8.4.编解码流程知识点 8.5.算法知识点 8.6.架构知识点 8.7.MySQL知识点 8. ...

  7. 树模型知识点(1)——决策树

    1.决策树的原理 决策树是一种树结构,从根节点出发,每个分支都将训练数据划分成了互不相交的子集.分支的划分可以以单个特征为依据,也可以以特征的线性组合为依据.决策树可以解决回归和分类问题,在预测过程中 ...

  8. 《数据结构》——树相关知识点总结

    树 树定义: 专业定义: 1.有且仅有一个成为根的节点 2.有若干个互不相交的子树,这些子树本身也是一棵树 通俗定义: 树是由节点和边组成 每一个节点只有一个父节点,但可以有多个子节点 但有一个节点例 ...

  9. mysql一张表两个索引字段是建两颗独立索引树吗?

    在 MySQL 中,一个索引就是一颗 B+ 索引树,所以这个和字段没关系,主要看建了几个索引 索引树是存储在磁盘上的 表 聚集索引(Clustered index ) 每个InnoDB表都有一个称为聚 ...

  10. 2020秋招CV面试知识点汇总

    向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程   公众号:datayx 1.NMS https://blog.csdn.net/lanchunhui/article/ ...

最新文章

  1. leetcode453. 最小操作次数使数组元素相等(贼难的简单题)
  2. visual assist安装方法
  3. Spring Session 2.0.0.M1 发布,分布式解决方案
  4. PHP三种字符串界定符的区别
  5. python有道云笔记_你很需要的,一个一键导出「有道云笔记」所有笔记的功能
  6. linux常用命令详解和用法_详解Linux shell用法中常用命令--read(传参)
  7. linux远程连接命令有哪些,linux系统远程连接命令有哪些
  8. Vue相关易忘点记录
  9. 坐标变换(5)—用旋转轴和旋转角表示旋转
  10. jquery实现回到顶部和回到底部
  11. c语言脱验证,CCAR.适航符合性验证思路简述
  12. 特种浓缩分离:中药提取液的澄清过滤技术
  13. 在github上托管属于自己的网页
  14. 计算机基础知识教程excel函数计算,计算机基础知识:Excel中的函数操作(四)...
  15. MacBook Pro换固态硬盘出现的一个稀缺问题
  16. 两台计算机互联方案,如何让两台电脑直接用网线互联.docx
  17. 解决联想拯救者Y9000X触控板失灵问题
  18. NYOJ_1275 导弹发射 【LIS】
  19. 信号灯管理服务器CPU型号,正文-新华三集团-H3C
  20. 【以太坊】雷电网络的101网络原理概述

热门文章

  1. 临床、实验室和流行病学研究的样本量 Sample Sizes for Clinical, Laboratory and Epidemiology Studies
  2. PerfLab(直接在服务器上完成)
  3. 【Jetpack 】
  4. oracle张大鹏,Oracle数据库性能优化
  5. 网页设计作业_Dreamweaver简单网页成品
  6. 【Spring 数据访问终篇】Spring + Hibernate + Mysql
  7. 刷magisk模块后不能开机_联想启天商用电脑刷BIOS或维修换主板后 开机叫两声处理办法...
  8. trove mysql 镜像_trove 基于 centos7 制作 mysql5.6 镜像
  9. 家用笔记本电脑什么牌子好_南阳家用小型电梯什么牌子好
  10. 凉凉用计算机打的歌谱,张碧晨杨宗纬《凉凉》歌谱