JS数据结构-树

  • 根结点是树最顶层结点
  • 边是两个结点之间的连接
  • 子结点是具有父结点的结点
  • 父结点是与子结点有连接的结点
  • 叶子结点是树中没有子结点的结点(树得末端)
  • 高度是从下往上数。
  • 深度是从根节点往下层级。
  • 节点的度:节点拥有的子树的个数。
 
二叉树(Binary tree):指树中的节点最多只能有两个子节点,一个是左子节点,一个是右子节点。左右子节点的顺序不能颠倒。即二叉树中不存在度大于2的节点树。二叉树的遍历有两种选择:
1 深度优先搜索(Depth-First Search,DFS):(前中后序是相对根节点而言)广度优先算法实践
  • 前序遍历:根节点优先,之后是左节点,最后是右节点。
  • 中序遍历:左节点优先,之后是根节点,最后是右节点。
  • 后序遍历:左节点优先,之后是右节点,最后是根节点。
2 广度优先搜索(Breadth-First Search,BFS):BFS是一层层逐渐深入的遍历算法
 
 
 三 二叉搜索树(BST——Binary Search Tree)是二叉树的一种,它规定在左子节点上存储小(比父节点)的值,在右子节点上(比父节点)存储大(或等于)的值。 

  1. 自平衡二叉搜索树(AVL——Adelson-Velskii-Landi)。在AVL中,任何一个节点左右两棵子树的高度之差最多为1,添加或移除节点时,AVL树会尝试自平衡。对AVL树的操作和对BST树的操作一样,不同点在于我们还需要重新平衡AVL树
  2. 红黑树也是一种自平衡二叉搜索树,但是它对其中的节点做了很多特殊的规定,使得在操作树节点的性能上要优于AVL。

 

推荐阅读:

JS树的实现:https://www.cnblogs.com/jaxu/p/11309385.html

 

 

 

 

 

 

posted @ 2021-04-16 16:31  TerryMin  阅读(269)  评论(0编辑  收藏  举报