50 # 树的概念

简介: 50 # 树的概念

讲完了链表下面了解树的数据结构,它非常的重要。

树型结构

常见的树形结构有二叉树和多叉树(大于两个叉的树)。

开发中常见的树形结构有:文件夹目录、DOM 结构、路由的配置…

常见的概念

  • 节点:根节点、父节点、子节点、兄弟节点
  • 子树:左子树、右子树,子树的个数称之为
  • 叶子节点:度为 0 的节点,非叶子节点:度不为 0 的节点
  • 节点的深度:从根节点到当前节点所经过的节点总数
  • 节点的高度:从当前节点到最远叶子节点经过的节点总数
  • 树的层数、树的高度、树的深度
  • 有序树:节点按照顺序排列,无序树

二叉树

二叉树是每个节点最多有两个子树的树结构,每个节点的度最多为 2,通常子树被称作左子树left subtree)和右子树right subtree),左子树和右子树是有顺序的

二叉树的常见概念

  • 真二叉树:不含一度节点的二叉树称作真二叉树(proper binary tree
  • 满二叉树:满二叉树也是真二叉树,且所有的叶子节点都在最后一层
  • 完全二叉树:深度为 k 的有 n 个节点的二叉树,对树中的节点按从上至下,从左至右的顺序进行编号,如果编号为 i ( 1 ≤ i ≤ n)的节点与满二叉树中编号为 i 的节点在二叉树中的位置相同,则这棵二叉树称为完全二叉树。

什么是二叉搜索树?

一般情况下存储数据我们可以采用数组的方式,但是从数组中检索数据的时间复杂度是 O(n),如果数据存储有序,则可以采用二分查找的方式来检索数据,复杂度为 O(logn),但是如果操作数组中的数据像增加、删除默认数组会产生塌陷,时间复杂度为 O(n)

二叉搜索树也称为二叉查找树或二叉排序树,在二叉搜索树中查询、增加、删除复杂度最坏为 O(logn),特性是当它的左子树不空,则左子树上所有节点的值均小于它的根节点的值,当右子树不空,则右子树所有节点的值均大于它的根节点的值。

目录
相关文章
|
23天前
|
存储 算法
树(Tree) - 概念与基础
树(Tree) - 概念与基础
14 2
|
7月前
|
算法 C语言
【数据结构与算法】树、二叉树的概念及结构(详解)(上)
【数据结构与算法】树、二叉树的概念及结构(详解)(上)
|
7月前
|
存储 知识图谱
【数据结构】树和二叉树的概念及结构(一)
【数据结构】树和二叉树的概念及结构(一)
55 1
|
10月前
|
存储
树和二叉树的概念以及结构
树和二叉树的概念以及结构
|
4月前
|
存储
B树的原理与实现
B树的原理与实现
40 0
|
7月前
|
存储 算法
【数据结构与算法】树、二叉树的概念及结构(详解)(下)
【数据结构与算法】树、二叉树的概念及结构(详解)(下)
|
9月前
|
存储 数据可视化 关系型数据库
|
9月前
|
C语言 C++
【哈夫曼树】基本概念、构建过程及C++代码
【哈夫曼树】基本概念、构建过程及C++代码
150 0
|
11月前
|
存储
数据结构(8)树形结构——B树、B+树(含完整建树过程)
8.1.B树 8.1.1.概述 B树存在的意义: 二叉树在存储数据时可能出现向一边倾斜导致查询效率降低的情况,为了防止二叉树的倾斜,出现了平衡二叉树,通过旋转的方式保证二叉树的平衡。但是就算是保持绝对的平衡,在面对要存储的数量量级够大的时候也会出现树的高度整体偏高的问题,树的高度过高,即使是使用了二分查找,依然会出现查找效率变低的情况。尤其是磁盘查找数据本身是个机械完成的动作,这一动作本身就十分耗时。因此需要一种能进行二分查找缩短查找时间,能存储大量数据后树高也不会过高的树形结构,这就是B树。
129 0
|
11月前
|
存储
树和二叉树的基本概念和性质
树和二叉树的基本概念和性质