zoukankan      html  css  js  c++  java
  • 第五章学习小结

    一、小结

    1.二叉树

      定义与性质:

      (1) 二叉树有五种基本形态;

      (2) 在二叉树的 第 i 层上至多有 2^(i-l) 个结点(i>=1);

      (3) 深度为 k 的 二叉树至多有 2^k -1 个结点 (k>=1);

      (4) 叶子结点数 = 度为2结点数+1;

      (5) 满二叉树是完全二叉树的一种;还有更常见的非完全二叉树;

      二叉树的存储与遍历:

      (1) 适合用顺序存储结构的二叉树种类较少,更多会使用链式存储结构,但无论如何,都要根据实际问题设计合适的 结点结构 和 存储结构;

      (2) 遍历二叉树是二叉树最基本的操作,其他各种操作的基础;

      (3) 基于二叉树的递归定义有 先序、中序、后序三种遍历算法;时间复杂度为O(n);

      (4) 线索二叉树除了能得到左右孩子结点的信息,还能直接的到结点的前驱和后继信息。

    2.树与森林

      树的存储与遍历:

      (1) 常见的存储结构有双亲表示法、孩子表示法、孩子兄弟法。可根据具体问题作出节省空间或节省时间上的改进;

      (2) 森林或树与二叉树可进行相互转换;

      (3) 森林有两种基于递归定义的遍历方法:先序和中序;

    3.哈夫曼树

      (1) 带权路径长度最小的二叉树称为哈夫曼树;权值越大的结点离根结点越近;

      (2) 左分支标记为 0, 右分支标记为 1,则根结点到每个叶子结点路径上的 0、1序列即为相应字符的编码,如下图

      

    二、感想:

    感觉比第四章简单了一丢丢(可能老师手下留情),因为把树的结点线性化后,基本操作还是基于线性表,只是在解决具体问题时,

    设计怎样的结点、设计怎样的遍历方法能够适用于当前问题,是需要实操前多思考多比较的

  • 相关阅读:
    Winform—C#读写config配置文件
    C# 中Web.config文件的读取与写入
    Redis配置文件详解
    三层架构之泛型抽象
    Linq To Sql语法及实例大全
    junit单元测试(keeps the bar green to keeps the code clean)
    观 GT Java语言管理系统的感悟
    java考核完的心得
    15个C++项目列表
    C++文件操作(fstream)
  • 原文地址:https://www.cnblogs.com/jospeer/p/12995808.html
Copyright © 2011-2022 走看看