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

时间:2021-05-21 10:25:53

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

教材学习内容总结

3.1 集合

  • 集合分为线性集合与非线性集合
  • 目前已知的线性集合:线性表、栈、队列、数组。
  • 目前已知的非线性集合:多维数组。
  • 抽象数据类型(Abstract Data Type,ADT)是用来定义一些数值及方法的数据类型,通常用户端无需知道其细节如何,只需使用即可,即计算机按加法键即可用于加法运算而不需要用户知道加法键的方法细节。

3.2 栈集合

  • 栈采用先进后出的方式进行处理。

3.3 主要的面向对象的概念

  • 三大概念:封装、继承、多态
  • 封装:即Public、Protected、Private的不同使用。
  • 继承:在其他类里面使用别的抽象类定义的方法。
  • 多态:父类与子类之间,对方法的重写(覆写)
  • 重载:同一方法名,不同参数量的做法。
  • 泛型是指在实现其功能前未知何种类型对象 ,后面在存储管理的时候再定义对象类型。

    3.5 异常

    -错误和异常表示不正常或不合法的处理。

    3.7 用数组实现栈

  • 处理异常情况,决定了集合和集合的用户能否控制某个行为。

    3.8 ArrayStack 类

  • 建立构造函数的时候一般是两个,一个是默认容量的,一个是制定容量,这个制定容量为了以后使用时不超出,优先建立泛型类的容量,由于泛型不可被实例化,此时可以将之转化为object类数组即可。
Public ArrayStack()
    {
        top = 0;
        stack =(T[]) (new Object[DEFAULT_CAPACITY]);
    }
Public ArrayStack(int initialCapacity)
    {
        top = 0;
        stack =(T[]) (new Object[initialCapacity]);
    }

下面这一步就是将泛型转换成Object类型

stack =(T[])(new Object[initialCapacity])

4.1 链接作为引用

  • 对象引用变量来构成链式结构

    4.2 管理链表

  • 当一个person对象指向了第二个person对象时这种对象叫做自引用,这也构成了链表
  • 一个person对象指向的第二个person对象中的引用对象叫做结点(node)
  • 一个链表的第一个结点则需要取单独的引用对象(这就是之前课堂作业里的head)
  • 插入结点时顺序极其重要,一不小心就可能丢失某个对象。

    4.3 无链接的元素

  • 定义所有元素链接在一个结点。

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

  • 问题1:泛型与object类有啥不同,除了泛型不可实例化以外。是否可以用object替代泛型。
  • 问题1解决方案:查了有关资料之后,好像是泛型相对于object类的好处就在于它在编译的时候强制转化是安全于object的。然后是泛型T是由于C语言里的传统带到Java中来的,其实是Type的缩写与object都是用来表示未知类型的对象的。最终解释是泛型 可以规范类型,因为T是可以改变成任何类型!!而object是容纳所有类型,再清楚的说就是T可以化作是Student,之后这个泛型就只能放Student了。

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

  • 问题:在进行pp3.9的时候,需要进行TextView的调试等,在加入之后发现在框中找不到存在的TextView。图120172333 2018-2019-1 《程序设计与数据结构》第二周学习总结

  • 解决:在查了相关资料之后发现这是属于全局格式文件Theme调试不对的原因图2.20172333 2018-2019-1 《程序设计与数据结构》第二周学习总结

代码托管

  • 截图暂无

上周考试错题总结

1.软件系统只需要工作来支持开发人员、维护人员和用户的工作。

A .True

B .Flase

答案:B

解析:软件工程不知关注的是编写代码,更重要的是理解与高质量软件开发的相关问题。

2.算法的顺序为算法的生长函数提供了一个较低的约束。

A .True

B .Flase

答案:B

解析:算法的阶次为增长函数提供了一个上界

结对及互评

基于评分标准,我给李楠的博客打分:7分。得分情况如下:

正确使用Markdown语法(加1分)

模板中的要素齐全(加1分)

教材学习中的问题和解决过程, (加3分)

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

感想,体会真切的(加1分)

点评认真,能指出博客和代码中的问题的(加1分)

点评过的同学博客和代码

  • 本周结对学习情况
    • 20172330李楠
    • 结对照片
    • 结对学习内容
      • 集合概述——栈
      • 链式结构——栈

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

栈的学习还需努力,相关的操作手法还是有些迷惑,特别是关于栈的排列。

学习进度条

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