zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    用WebStorm运行Vue项目
    秋招圆满结束
    最新的秋招进度 10月21号
    来更新一下秋招的进度~
    华为三面完进池子啦~9月17日
    C++ 迭代器失效问题
    C++类相关问题(空类、多态、重载、继承)
    C++各种变量、类型的存储位置
    写一个面试中场景题的总结
    明天要面阿里HR面了
  • 原文地址:https://www.cnblogs.com/terrymin/p/14667591.html
Copyright © 2011-2022 走看看