• 第五章学习小结


    1、第五章主要学习了与树相关的知识,从二叉树拓展到一棵普通的树,再从一棵普通的树拓展到哈夫曼树,再从树拓展到森林的概念。5-1节学习了树和二叉树的定义,对节点,根节点,叶子结点,深度,度等概念进行了初步的了解。5-4节了解了与二叉树相关的一些性质,其中引出了完全二叉树与满二叉树的概念,从这一节开始也正式开始考虑用存储结构去存储一棵树。书本上介绍了顺序存储和链式存储两种方式,其中顺序存储相对一般的二叉树的话比较浪费空间,所以一般考虑使用二叉链表的方式进行存储。

    这是二叉链表比较常用的定义方式

    typedef struct BitNode

    {

      char data;

      struct TNode *lch, *rch;
    }BitNode, *BitList;

    基于上面的定义,书本介绍了先序建立二叉链表的方式,然后又给出了先序遍历,中序遍历,后序遍历的算法步骤,也给出了包括计算节点总数,计算深度的算法。

    后面有个线索二叉树的知识点我还没有仔细地去看,感觉以后可能会用到,用到再回来补一补。

    2、学完了二叉树,就到树了。树的话学习了三种定义的方法,①双亲表示法=>也就是存储结构里面包含了父节点的下标; ②孩子表示法=>在指针域中以链表的形式将所有的子结点都连接起来

    ③孩子兄弟表示法=>采取左孩子右兄弟的方式进行存储

    3、然后的重点就到了哈夫曼树,在上周的学习中,掌握了构造了哈夫曼树的方法,同时了解到了最优树不仅包括用哈夫曼方法构造的树,也包括了他的同构树。

    4、然后PTA作业里面在做的时候遇到了一些问题,实践题第二题有个测试点是节点数不同的,之前以为他的意思是节点数不同也可以构成同构树,但是后来发现不是那么回事,

    树的同构必须保证节点数量的完全一致。在一些选择题里面有一些不太会的,后面查了资料就好了很多了。

    最后总结一下:这章的话知识有点多,不过知识点也比较得集中,类似的东西也比较多,借助这一章我感觉我的递归思维有了比较好的提升,然后需要注意的是在申请数组空间之后一定要记得去回收,

    还有 bool *fn=new bool[n]()这种定义方式我记住了,不会忘记了。

  • 相关阅读:
    冲刺计划第五天
    冲刺计划第四天
    冲刺计划第三天
    冲刺计划第二天
    冲刺计划第一天
    本周总结(9)
    统计文章中得单词百分比、以及字母百分比
    梦断代码阅读笔记03
    maven仓库、jar包兼容问题
    SpringMVC异常映射
  • 原文地址:https://www.cnblogs.com/jintao1990/p/12995001.html
Copyright © 2020-2023  润新知