20172318 2018-2019-1 《程序设计与数据结构》第2周学习总结

20172318 2018-2019-1 《程序设计与数据结构》第2周学习总结

教材学习内容总结

  • 集合
    • 集合是一种汇集、组织了其余对象的对象
    • 集合中的元素一般是按照它们添加到集合的顺序,或者是按元素之间的某种内在关系来组织的·
    • 集合是一种隐藏了实现细节的抽象·
    • 数据结构是一种用于实现集合的基本编程结构。
  • 栈集合
    • 栈的元素是按后进先出(凵FO)的方法进行处理的,最后进入栈中的元素最早被移出·
    • 编程人员选择的数据结构,应与须要进行数据管理的类型相适应·
  • 主要的面向对象概念
    • 多态引用(polymorphicreference)是一个引用变量,它能够在不一样地点引用不一样类型的对象。继承可用于建立一个类层次,其中一个引用变量可用于指向与之相关的任意对象。
    • 泛型:咱们能够定义一个类,以便它能存储、操做和管理在实例化以前没有指定是何种类型的对象。
  • 使用栈计算后缀表达式
    • 栈是用于计算后缀表达式的理想数据结构。
  • 异常
    • 在Java程序中出现问题时,会产生异常或错误。异常(exception)就是一个对象,它
      定义了一种非正常或错误的状况。异常由程序或运行时环境抛出,能够按预期的被捕获或
      被正确处理。
    • 错误(error)与异常相似,只不过错误每每表示一种没法恢复的状况,且不
      必去捕获它。
    • Java有一个预约义的异常和错误集,当程序运行时它们可能会发生。
    • 错误和异常表示不正常或不合法的处理·
  • 栈ADT
    • Java接口定义了一个抽象方法集,有助于把抽象数据类型的概念与其实现分隔开来·
    • 经过使用接口名做为返回类型,方法就不会局限于实现栈的任何特定类
  • 用数组实现栈
    • 出于运行效率的考虑,基于数组的栈实现老是使栈底位于数组的索引0处
  • 连接做为引用
    • 链式结构(linkedstructure)是一种数据结构,它使用对象引用变量来建立对象之间的连接。
    • 裢表由一些对象构成,其中每一个对象指向了链表中的下一对象。
    • 链表会按需动态增加,所以在本质上,它没有容量限制·
  • 管理链表
    • 要访问其余元素,必须先访问第一个元素,
      而后顺着下一个指针从一个元素到另外一个元素
    • 结点能够被插入到链表的任意位置:链表的前端、链表中的内部结点之间或链表的末
      端。在链表前端添加结点时,须要从新没置指向整个链表的引用
    • 链表中的任一结点均可被删除。但无论删除哪一个结点,都必须维护链表的完整性。与
      插入结点的过程同样,在结点的删除中,链表首结点的处理也是一种特例。

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

  • 问题1:泛型的好处
  • 问题1解决方案:在引入范型以前,Java类型分为原始类型、复杂类型,其中复杂类型分为数组和类。引入范型后,一个复杂类型就能够在细分红更多的类型。
    例如原先的类型List,如今在细分红List, List 等更多的类型。
    注意,如今List , List 是两种不一样的类型,
    他们之间没有继承关系,即便String继承了Object。下面的代码是非法的
    List ls = new ArrayList ();
    List lo = ls;
    这样设计的缘由在于,根据lo的声明,编译器容许你向lo中添加任意对象(例如Integer),可是此对象是
    List ,破坏了数据类型的完整性。
    在引入范型以前,要在类中的方法支持多个数据类型,就须要对方法进行重载,在引入范型后,能够解决此问题(多态),更进一步能够定义多个参数以及返回值之间的关系。
    例如
    public void write(Integer i, Integer[] ia);
    public void write(Double d, Double[] da);
    的范型版本为
    public void write(T t, T[] ta);

  • 问题2:数组实现栈和链表实现栈分别有什么好处
  • 问题2解决方案:只要在须要时,链表实现才会分配存储空间,而且只有硬件空间大小的理论限制。数组实现为每一个对象使用的空间更少,由于它只需存储对象,不须要存储额外的指针。可是,在初始的时候,数组会分配比它所需的更多空间。html

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

    • 问题1:如何排序各个单词的字母
    • 问题1解决方案:参考了上个学期的charAt方法将各个单词的字母排序

    上周考试错题总结

    • 错题1及缘由,理解状况
      A system that is well designed, written, and documented exhibits the quality characteristic of ____________.
      A .Reliability
      B .Maintainability
      C .Efficiency
      D .Robustness
      正确答案B,一个设计好的、书面的、有文件的系统展现了其可维护的特性前端

    • 错题2及缘由,理解状况
      Software must make efficient use of resources such as CPU time and memory.
      A .True
      B .Flase
      选B,软件无需必定要有效地使用cpu和内存,主要看状况java

    • 错题3及缘由,理解状况
      A stack can be used to preserve the order of a set of data.
      A .True
      B .Flase
      选B,队列能够保存顺序,堆栈保存相反顺序git

    • 错题4及缘由,理解状况
      The order of an algorithm is found by eliminating constants and all but the dominant term in the algorithm’s growth function
      A .True
      B .Flase
      选A,算法的阶次是忽略该算法的增加函数中的常量和其余次要项,只保留主项而得出的.算法

    代码托管

    点评过的同窗博客和代码

    • 本周结对学习状况
      • 20172312
      • 结对学习内容
        • 课本第3、四章

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 0/0 1/1 8/8
    第二周 500/500 1/2 15/ 23

    参考资料

    posted @ 2018-09-18 22:22  m1sty 阅读( ...) 评论( ...) 编辑 收藏
    javascript

相关文章
相关标签/搜索