学习笔记【第五章】

Part.A 小结&感悟

  想起来在这个学期开始前认识的一个学长曾经对我说过,你们下学期会学到一个叫做二叉树的东西,当年我可是饱受折磨啊……

  学习之前一直以为是很难理解的一个东西,但是现在发现这一章的知识总体来看非常条理和具体,同时二叉树的数据结构本身确实是存在其难理解的地方的,对于这一章中屡屡出现的递归算法,我总是需要花费大量的时间才能够理解,在想明白之后又开始对人类的智慧产生浓浓的敬佩…

       关于这里大量的概念和术语,我这里简单做了一点整理,

 

Part B 反思&计划

  在整理知识结构的过程中也顺便回想了一遍这些知识和概念,其实这些都是最最基础的东西,只要理解了就很容易记住,想学好这部分的内容还是需要大量的编程练习,熟练地实现对应的算法,然后加强对于递归算法的理解和运用能力。

  这一章我印象很深刻的编程题目,深入虎穴,老师上课也进行了详细的讲解,我最开始的想法也是构造二维数组,但是这样的算法造成了极大的空间浪费(可以利用类似稀疏矩阵的算法节省空间)这是我没有考虑到的,一个好的程序需要有优秀的空间利用能力,实现效率的最大化,这道题目是一道看似不难实则不容易实现的题目,这也是我的一个问题,光有想法是不行的,需要每一步都能对应实现,就像这道题,在真正上手编程之后屡屡卡住,以后要更加注意思路的梳理。也暴露出我对前面所学知识的综合利用能力还不强(完全没想到利用稀疏矩阵……)

  遗憾的是,我最终没能独立完成这道题的编程,以后还会回头再来多回顾这道题目的。

             

Part C   一些想法&疑问

  这是我随手写的一个小小的递归算法

1  void GoThrough(Node T)   
2  {
3      if(!EmptyTree T) break;   //EmptyTree 判断树是否为空
4      GoThrough(T.Lchild);
5      GoThrough(T.Rchild);
6  }

  那么如果把3、4行的内容对换,会造成什么样的影响,谢谢老师的解答(我在对递归算法的理解上始终不通顺,希望老师别介意问题太低级了哈哈哈)

 

posted @ 2019-05-04 22:16  52Herz  阅读(157)  评论(2编辑  收藏  举报