zoukankan      html  css  js  c++  java
  • 树 —— 总论

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

    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)。

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

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

  • 相关阅读:
    6.2.2 RPM包管理-rpm命令管理-安装升级与卸载
    6.2 RPM包管理-rpm命令管理-包命名规则和依赖性
    6.1软件包管理简介
    sql server 2012还原数据库时报错(错误码:3154)
    SQL Server2012安装教程
    常用端口及对应服务
    PING命令排查网络故障思路
    必须掌握的八个DOS命令(转)
    svchost占用内存过高电脑很卡如何解决
    optional的用法
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9423751.html
Copyright © 2011-2022 走看看