• 20162305 2017-2018-1 《程序设计与数据结构》第7周学习总结


    20162305 2017-2018-1 《程序设计与数据结构》第7周学习总结

    教材学习内容总结

    • 1、什么是树:由一组结点及一组边构成,结点用来保存元素,边表示结点之间的连接。每个结点都处在树的某一层中。

    • 2、树的结点:

      根结点:树中唯一没有父结点的结点。

      叶结点:没有任何子结点的结点。

      兄弟结点:有相同父结点的结点。

      内部结点:至少有一个子结点的非根结点。

    • 3、树的遍历:

      先序遍历:访问根,自左至右遍历子树。

      中序遍历:遍历左子树,然后访问根,然后自左至右遍历余下的各个子树。

      后序遍历:自左至右遍历各子树,然后访问根。

      层序遍历:从树的顶层(根)到底层,从左至右,访问树中每层的每个结点。

    教材学习中的问题和解决过程

    • 问题1:对树的各种遍历不是十分清楚。

    • 问题1解决方案:结合教材P372树的四种遍历结果,再结合四种遍历方式,理解了各种遍历方式的遍历过程。

    • 问题2:有100个结点的完全二叉树,其高度是多少?

    • 问题2解决方案:结合完全二叉树的性质解决这个问题。具有n个结点的完全二叉树的高度至少为log2(n +1),100个结点对应的最小高度为log2 (101),2^6 = 64,2^7 = 128,所以该二叉树的高度为7。

    代码调试中的问题和解决过程

    • 问题1:教材代码中提到的ArrayIterator类并没有,代码中一直标红。

    • 问题1解决方案:在idea中引用了 org.hamcrest.internal.ArrayIterator,这样可以解决,不过在下面代码中的add方法还是标红,没能解决。

    代码托管

    (statistics.sh脚本的运行结果截图)

    上周考试错题总结

    • 1、
    
    A stack is a ___________________ data structure. 
    
    
    
    A.LIFO
    
    B.FIFO
    
    C.link based
    
    D.array based
    
    E.none of the above
    
    

    正确答案:A

    理解:栈是一个后进先出的数据结构(LIFO)。

    • 2、
    
    When one type of object contains a link to another object of the same type, the object is sometimes called __________ . 
    
    
    
    A.circular
    
    B.recursive
    
    C.self-referential
    
    D. a stack
    
    E.a queue
    
    

    正确答案:C

    理解:当一个类型的对象包含一个链接到同一类型的另一个对象,该对象是有时被称为自指示。

    • 3、
    
    A stack is the ideal collection to use when _______________________ . 
    
    
    
    A.implementing a merge sort
    
    B.evaluating a postfix expression
    
    C.evaluating an infix expression
    
    D.implementing a quick sort
    
    E.none of the above
    
    

    正确答案:B

    理解:栈在计算后缀表达式的时候是一个理想的收集。

    • 4、
    
    The import keyword is used to define your own packages. 
    A.true
    
    B.false
    
    

    正确答案:B

    理解:导入关键字不能定义自己的包。

    • 5、
    
    In a linked implementation of a stack, a pushed element should be added to the end of the list. 
    
    A.true
    
    B.false
    
    

    正确答案:B

    理解:在一个堆栈的链接实现中,一个被push的元素应该被添加到列表的表头。

    结对及互评

    点评模板:

    • 博客中值得学习的或问题:
      • xxx
      • xxx
      • ...
    • 代码中值得学习的或问题:
      • xxx
      • xxx
      • ...
    • 其他

    其他(感悟、思考等,可选)

    本周学习的树这一结构我认为比栈和队列要困难一些,下周的学习中还是应该以这部分内容为重,写好代码。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 0/0 1/1 20/20
    第二周 100/100 1/2 15/35
    第三周 454/554 1/3 15/50
    第四五周 772/1326 2/5 20/70
    第七周 745/2071 2/7 20/90

    尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
    耗时估计的公式
    :Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

    参考:软件工程软件的估计为什么这么难软件工程 估计方法

    • 计划学习时间:XX小时

    • 实际学习时间:XX小时

    • 改进情况:

    (有空多看看现代软件工程 课件
    软件工程师能力自我评价表
    )

    参考资料

  • 相关阅读:
    Docker 批量删除容器和镜像
    Matlab中xcorr命令解释
    关于递归总结
    关于STL的map的注意事项
    sublime text 3快捷键
    visual Assist常用快捷键
    学校到职场新人的总结
    Navicat for Mysql导入mysql数据库脚本文件
    欧美姓氏的来源
    linux tar.gz zip 解压缩 压缩命令
  • 原文地址:https://www.cnblogs.com/lyxwatm/p/7710984.html
Copyright © 2020-2023  润新知