2019-2020-26 《数据结构与面向对象程序设计》第9周学习总结

2019-2020-26 《数据结构与面向对象程序设计》第9周学习总结

教材学习内容总结

  1. 树是非线性结构,其元素组织为一个层次结构
  2. 树的度表示数中任意结点的最大子结点数
  3. 有m个元素的平衡n叉树的高度是logn m
  4. 树的遍历有四种方法:先序遍历,中序遍历,后序遍历和层序遍历
  5. 使用数组实现二叉树时,位于位置n的元素的左孩子在(2n+1)的位置,其右孩子在(2×(n+1))的位置
  6. 树的基于数组的存储链实现方式可以占据数组的连续位置,不管树是不是完全树
  7. 如何在一般二叉树中添加及删减元素,要取决于树的用途
  • 二叉查找树
  1. 二叉查找树是一颗二叉树,对其中的每个结点,左子树的元素小于父结点的值,二右子树上的元素大于等于父结点的值
  2. 最有效的二叉查找树是平衡的,所以每次比较时可以排除一半的元素
  3. 如果没有其他操作,二叉查找树形由元素的添加次序决定
  4. 当从二叉查找树中删除元素时要考虑删除的结点位置
  5. 可以对二叉查找树进行旋转以恢复平衡

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

  • 问题1:二叉树和二叉查找树的不同

  • 问题1解决方案:
    二叉查找树树一般是排序树的一种,并且加点条件,就是任意一个节点的两个叉的深度差不多(比如差值的绝对值小于某个常数,或者一个不能比另一个深出去一倍之类的)。
    这样的树可以保证二分搜索任意元素都是O(log n)的,一般还附带带有插入或者删除某个元素也是O(log n)的的性质。

  • 问题2:什么是决策树

  • 问题2解决方案:是一种分类与回归方法,主要用于分类,决策树模型呈现树形结构,是基于输入特征对实例进行分类的模型。
    用决策树进行分类,从根结点开始,对实例的某一个特征进行测试,根据测试结果分配往对应的子结点中去,每个子结点对应一个特征的取值,递归的进行分类测试和分配,最终到达对应的叶结点,完成本次的分类

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

  • 问题1:如何实现决策树
  • 问题1解决方案:在结对伙伴的帮助下理解了决策树的意思,然后在网上找到有关博客进行了更近一步的了解(博客具体看最后的链接)

代码托管week9

上周考试错题总结

  1. Which of the following is not an operation on a stack?
    A .push
    B .pop
    C .peek
    D .dequeue
    E .all of the above are operations on a stack
    正确答案: D 你的答案: E
    解析:出列操作是队列操作。
    2.What exception is thrown if the pop method is called on an empty stack?
    A .EmptyStackException
    B .NoSuchElementException
    C .ArrayOutOfBoundsException
    D .EmptyCollectionException
    E .none of the above
    正确答案: D 你的答案: E
    解析:如果在空堆栈上调用pop方法,则引发EmptyCollectionException。
    3.Which of the following methods removes an element from a queue?
    A .enqueue
    B .dequeue
    C .first
    D .pop
    E .push
    正确答案: B 你的答案: D
    解析:dequeue方法从队列中删除元素
    4.n a array-based implementation of a queue that stores the front of the queue at index 0 in the array, the dequeue operation is ___________________.
    A .impossible to implement
    B .has several special cases
    C .O(n)
    D .O(n2)
    E .none of the above
    正确答案: C 你的答案: D
    解析:在应用remove之后,将队列中的所有元素下移到索引中需要线性时间。
    5.One of the uses of trees is to provide simpler implementations of other collections.
    A .True
    B .Flase
    正确答案: B 你的答案: A

结对及互评

点评:

  • 博客中值得学习的或问题:
    • 对课本,代码进行多方位的思考。
    • 认真寻找自己的不足之处。
    • 举例说明问题。
  • 代码中值得学习的或问题:
  • 基于评分标准,我给本博客打分:14分。得分情况如下:
    • 感想,体会不假大空的加1分
    • 排版精美的加一分
    • 结对学习情况真实可信的加1分
    • 正确使用Markdown语法
    • 模板中的要素齐全(加1分)
    • 错题学习深入的加1分
    • 点评认真,能指出博客和代码中的问题的加1分
    • 教材学习中的问题和解决过程, 加5分
    • 代码调试中的问题和解决过程,加2分

点评过的同学博客和代码

  • 本周结对学习情况

  • 上周博客互评情况

其他(感悟)

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 26/200 2/2 7/7
第二、三周 235/327 3/5 15/23
第四周 123/450 2/7 8/31
第五周 850/1300 2/9 9/40
第六周 846/1696 2/11 7/47
第七周 1614/3310 2/13 15/62
第八周 360/3670 1/14 10/72
第九周 2611/6281 2/16 10/82
  • 实际学习时间:10小时

参考资料

posted on 2019-11-19 22:23  20182326  阅读(207)  评论(1编辑  收藏  举报