• 树 —— 总论


    • 一个结点可以有多个子节点,但一个子节点只可以有一个父节点

    0. 递归性

    tree = (root, sub-trees)

    树天然地是一种可递归的结构,即可不断地将其展开为规模更小(但同等结构)的树(子树,是说和原始的树不同,只是规模更小而已)。

    1. 分类

    • 真二叉树(proper binary tree):不含一度结点的树(只有 0 度和 2 度的结点);

    2. 辨异

    节点所在的高度(height)在不同的树形结构中,具体语义也有所不同。

    • 红黑树将采用所谓的黑高度(black height)
    • 左式堆则采用所谓的空节点通路长度(null path length)

    3. 定义前驱和后继

    比如通过中序遍历,可在二叉树各结点之间定义一个线性次序。既然是线性顺序,便可定义结点之间的前驱和后继关系。

    4. 结点插入(insert)和子树接入(attach)的区别

    • BinTree 二叉树结构中插入 BinNode 结点对象 ⇒ 结点插入(insertAsLC/insertAsRC)
    • BinTree 二叉树结构中插入 BinTree 子树对象(作为左孩子,或者右孩子) ⇒ attachAsLC/attachAsRC

    5. 树的遍历

    对二叉树的访问多可抽象为如下形式:按照某种约定的次序,对各节点访问一次且仅访问一次。与向量和列表等线性结构一样,二叉树的这类访问也被称作遍历(traversal)。

    遍历之于二叉树的意义,同样也为相关算法的实现提供通用的框架。此外,这一过程也等效于将半线性的树形结构,转换为线性结构

    不过,二叉树毕竟已不再是属于线性结构,相对而言,其遍历也更为复杂。

  • 相关阅读:
    api自动化工具集成metersphere
    gitlab+github使用记录
    docker基本操作
    linux指标分析
    python的break和continue
    linux基本性能指标语法
    jmeter标准流程设置
    postman
    jmeter本地启动
    对浮动的一些个人理解
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9423751.html
Copyright © 2020-2023  润新知