zoukankan      html  css  js  c++  java
  • 《数据结构》学习笔记 第5章 树

    1, 树:兼顾动态操作与静态操作;可以认为是list<list>,半线性结构。基本概念:

    • 树的深度:每个节点到根的唯一通路所经过的边的数目,称作该节点的深度。
    • 树的高度:所有节点深度的最大值称作该树的高度;任一节点对应子树的高度,称作该节点的高度。
    • 节点的度数:节点v的孩子的总数,称作其度数。无孩子的节点,称为叶节点(Leaf)。

    2, 有序树:

    3,路径长度:边数。

    4,连通图与无环图;深度层次。

    5, 接口

    • root()
    • parent()
    • firstChild()
    • nextSibling()
    • insert(i,e)
    • remove(i)
    • traverse()

    6, 树的逻辑结构

    • 父节点表示法:向上查找容易;向下难。
    • 孩子结点表示法:向下查找容易;向上难。
    • 父亲+孩子结点表示法:向上向下查找均容易;子树数目不均衡。
    • 长子+兄弟表示法:很强大。

    7,二叉树

    • 二叉树概念
    • 真二叉树:不含一度节点的二叉树
    • 用二叉树表示多叉树

    8,二叉树的实现:BinTree模板类

    • 基本组成:BinNode模板类
    • BinTree模板类 
      • 高度更新
      • 节点插入
      • 遍历:先序,中序,后序

    9,二叉树BinTree模板类的遍历算法

    • 半线性结构--> 线性结构,通过遍历完成转化。
    • 先序遍历 

      • 递归版本
      • 迭代版本1和版本2
    • 中序遍历

      • 递归版本:复杂度O(n).

      • 递归版本:复杂度O(n).

    • 后序遍历 (略)

    • 层次遍历: 依靠队列(Queue)实现。

    10, 二叉树的重构:可否由其遍历序列,还原出该二叉树?

    • [先序 | 后序] + 中序 -> 二叉树 
    • [先序 + 后序] x 真二叉树 -> 二叉树
  • 相关阅读:
    第十二课:复习课一
    第十一课:磁场和洛伦兹力
    关于 求 曲面 短程线
    二元函数 的 极值点 怎么求 ?
    给 学生党 出一道题 : 斯涅耳定理 的 增强版
    极坐标系 : 一生只做一件事
    代数几何 定理 合集
    代数几何 很难 吗 ?
    看了一下 复变函数 黎曼曲面 流形 复流形 仿射空间 射影空间
    物空必能 先生 的 绝对速度 是 一种 “约化速度”
  • 原文地址:https://www.cnblogs.com/sanlangHit/p/12070580.html
Copyright © 2011-2022 走看看