• 20182312第七周学习总结


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

    教材学习内容总结

    课本第12章 算法分析
    (1)学习了算法效率分析以及时间复杂度中的大O记法
    (2)学习了增长函数的比较,用于分析算法运行效率,增长函数表示问题大小与希望优化的值之间的关系,该函数表示算法的时间或空间利用率。这个比较是必要的,因为如果算法的运行效率低,使用更快的处理器也无济于事。
    (3)循环,嵌套循环及方法调用的复杂度分析:首先要确定该循环体的阶次n,然后用该循环要运行的次数乘以它。
    课本第14章 栈
    (1)集合:一种聚集、组织了其他对象的对象,是一种隐藏了实现细节的抽象。
    (2)栈:一个后进先出,先进后出的集合,其中常用方法为push(入栈)pop(出栈)peek(显示栈顶元素)isEmpty(判断是否为空)size(确定栈的元素数目)等并且,栈可以通过很多方法实现,如数组,链表(栈的链表实现是从链表的一端添加和删除元素)。
    课本第15章 队列
    (1)队列的元素是按FIFO方式处理的:第一个进入的元素,也就是第一个退出的元素,队列也可以通过数组和链表实现。同时有这几个操作:enqueue入队dequeue出队first显示队首isEmpty是否为空size元素个数

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

    • 问题1:数组实现的队列和栈,当新元素加入到一个满的数据结构中时应该做些什么,因为毕竟数组是一个固定大小的数据结构。
    • 问题1解决方案:
    • (1)实现往集合添加一个元素的操作,如果集合为满,抛出一个异常。
    • (2)实现add操作,该操作返回一个可由用户检查的状态标识符,一边查看该add操作是否成功
    • (3)当需要时可扩展集合的容量。
    • 问题2:数组实现的队列,向中间插入元素是不是很麻烦,需要把很多元素移位。
    • 问题2解决方案:把数组看做环形的,可以出去在队列的数组实现中把元素移位的需要
    • 问题3:老师上课所说的front和rear的位置重合时怎么判断到底是空还是满
    • 问题3解决方案:这里记录一种新奇的方法,即记录rear和front移动的方向,从而确定它到底是空还是满。

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

    • 问题1:在使用链表实现二叉排序树的时候链表莫得了。
    • 问题1解决方案:在私有变量中定义一个root保存好根节点,根节点一丢整个链表就没了。
    • 问题2:用链表实现队列和栈似乎有区别
    • 问题2解决方案:我们必须要操作链表的两端,于是,除了一个指向链表首元素的引用(称为head)之外,还需要跟踪另一个指向链表末元素的引用(称为tail)。还要用一个整型变量count来跟踪队列中的元素数。

    代码托管

    点评过的同学博客和代码

    • 本周结对学习情况

      • 20182308
      • 结对学习内容
        • 我们一起交换了有关链表的理解,互相帮助了一下各自链表的使用。
    • 上周博客互评情况

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

    这一周学的东西就概念或者说原理来说是不难的,但是极其重要,相当于是一种工具,我们这几周做的实验和实践其实都是与这息息相关的,而我们在学习的过程中着重于链表对于栈和队列的实现,链表如果能学通,后面的实验和实践应该好做不少。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 130/130 2/2 23/23
    第二周 451/581 3/5 42/67
    第三周 451/581 3/5 42/67
    第四周 617/1068 2/7 28/95
    第五周 632/1700 2/9 17/112
    第六周 666/2366 1/10 22/134
    第七周 1666/4032 3/13 42/178
    • 计划学习时间:50小时

    • 实际学习时间:42小时

    • 改进情况:在编代码之前要想很久相关的逻辑和算法,现在逻辑的思考比敲代码重要了。

    参考资料

  • 相关阅读:
    PythonのTkinter基本原理
    使用 Word (VBA) 分割长图到多页
    如何使用 Shebang Line (Python 虚拟环境)
    将常用的 VBScript 脚本放到任务栏 (Pin VBScript to Taskbar)
    关于 VBScript 中的 CreateObject
    Windows Scripting Host (WSH) 是什么?
    Component Object Model (COM) 是什么?
    IOS 打开中文 html 文件,显示乱码的问题
    科技发展时间线(Technology Timeline)
    列置换密码
  • 原文地址:https://www.cnblogs.com/shouko/p/11787814.html
Copyright © 2020-2023  润新知