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),特性是当它的左子树不空,则左子树上所有节点的值均小于它的根节点的值,当右子树不空,则右子树所有节点的值均大于它的根节点的值。

你可能感兴趣的:(数据结构与算法,前端工程架构,数据结构,树,二叉树)