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

教材学习内容总结

本周的学习内容为集合

集合

  • 对象具有定义良好的接口,从而成为一种实现集合的完善体制。
  • 动态数据结构的大小规模随需要增长和收缩。
  • 通过引用和保存对象引用来实现一个链表的管理。
  • 通过自习操作对象引用,可以实现插入和删除操作。
  • 动态链表有许多不同的实现。
  • 队列是一种以先进先出方式管理数据的线性数据结构。
  • 堆栈是一种以后进后出的方式管理数据的线性数据结构。
  • 树是一种以层次结构组织数据的非线性数据结构。
  • 图是非线性数据结构,使用常见的边来连接节点。
  • Java集合类API定义了几种以不同方式实现的集合类。
  • Java集合类API中定义的类为泛型。
  • 泛型保证了集合中对象类型的兼容性。

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

  • 问题1:
    数据结构之线性结构与非线性结构的区别、分类
  • 问题1解决方案:
    线性结构有唯一的首元素(第一个元素)
    线性结构有唯一的尾元素(最后一个元素)
    除首元素外,所有的元素都有唯一的“前驱”
    除尾元素外,所有的元素都有唯一的“后继”
    数据元素之间存在“一对一”的关系
    例如:数组A1,A2,A3,........An,首元素就是A1,尾元素就是An

什么结构属于线性结构呢?
顺序表(一维数组),堆,栈,队列,链表

那非线性结构是什么呢?
数据元素之间是一对多,或者是多对一的关系

非线性结构有什么呢?
图(群结构),树(层次结构),多维数组

代码托管


上周考试错题总结

  • 问题1:Why is the following method one which has infinite recursion?
    public int infiniteRecursion(int n)
    {
    if (n > 0) return infiniteRecursion(n) + 1;
    else return 0;
    }
    A Because there is no base case
    B Because the base case will never be true
    C Because the recursive call does not move the parameter closer to the base case
    D Because the recursive call moves the problem further away from the base case
    E None of the above, there is no infinite recursion in this method
    分析:如果输入大于零的数,那么将不会进入else语句,也就说一直在大于零的情况下进行递归的循环

  • 问题2:A recursive algorithm is superior to an iterative algorithm along which of the following criteria?
    A The recursive algorithm is easier to debug
    B The recursive algorithm is computationally more efficient
    C The recursive algorithm is more elegant
    D The recursive algorithm requires less memory to execute
    E all of the above
    分析:当时我理解的应该是a递归算法更易于调试,但是答案给的是c。

  • 问题3:The difference between direct and indirect recursion is
    A direct recursion occurs when a method invokes itself; indirect recursion occurs when there is an intervening method
    B indirect recursion occurs when a method invokes itself; direct recursion occurs when there is an intervening method
    C direct recursion only occurs with methods declared to be private; indirect recursion can occur with methods declared to be private, protected, or public
    D indirect recursion only occurs with methods declared to be private; direct recursion can occur with methods declared to be private, protected, or public
    E none of the above
    分析:A选项的意思是:当一个方法调用自己时,就会发生直接递归;间接递归发生在有干预方法的时候。直接递归意味着一个方法直接调用自己,而不使用中间方法。当在原始方法再次被调用之前有一个或多个中间方法时,就会发生间接递归。

  • 问题4:The following method correctly multiplies two ints so long as both are non-negative:
    public int mpy(int a, int b)
    {
    return (b > 0) ? a + mpy(a, b-1) : 0;
    }
    A true
    B false
    分析:乘法只是重复加法,所以重复的加a,b倍,就是两个数的乘积。

结对及互评

点评模板:

  • 博客中值得学习的或问题:

    • 严域俊同学在进行异常和错误的区别时进行了详细的描述并配了图
    • 同时在根据自己代码中出现的问题又一次进行了查询和解答。
  • 代码中值得学习的或问题:
    • 这周初终于完成了四则运算,并且成功运行。
    • commit依旧很详细,有条理性。

点评过的同学博客和代码

  • 本周结对学习情况

    • 20172333
    • 结对学习内容
      • 学习第十三章pp项目。
      • 学习集合的具体内容
      • 对四则运算的收尾。

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

终于这本书学习完了,nice啊。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 180/180 2/2 20/25
第二周 312/414 2/4 20/45
第三周 557/971 1/5 25/70
第四周 1217/2242 2/7 44/114
第五周 734/2976 1/8 24/138
第六周 523/3509 1/9 20/158
第七周 697/4206 1/10 24/182
第八周 1118/5324 3/13 30/212
第九周 656/5980 2/15 20/232
第十周 909/6889 1/16 20/252

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

  • 计划学习时间:20小时

  • 实际学习时间:20小时

  • 改进情况:

这周对于课后练习做的没有那么吃力,但还是存在一些对于类的编写的问题,希望继续加油。

参考资料

20172330 2017-2018-1 《Java程序设计》第十周学习总结的更多相关文章

  1. 201521123027 <java程序设计>第十周学习总结

    1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 异常: 多线程: 2.书面作业 Q1.finally 题目4-2 1.1 截图你的提交结果(出现学号) 1.2 ...

  2. Java程序设计第十周学习总结

    Java课程知识梳理: 流的区分; 字符流与字节流的区别: 字节流是直接操作文件本身的,如果没有关闭字节流操作,文件会依然输出内容 而字符流在程序运行之后会发现文件没有任何的内容,这是因为字符流操作的 ...

  3. 学号 20175212 《Java程序设计》第九周学习总结

    学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...

  4. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  5. 《Java程序设计》第九周学习总结

    20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...

  6. 20145236 《Java程序设计》第九周学习总结

    20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...

  7. 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结

    20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...

  8. 20145237 《Java程序设计》第九周学习总结

    20145237 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令 ...

  9. 20172325 2018-2019-2 《Java程序设计》第九周学习总结

    20172325 2018-2019-2 <Java程序设计>第九周学习总结 教材学习内容总结 图的定义 图是由顶点集(VertexSet)和边集(EdgeSet)组成,针对图G,顶点集和 ...

  10. 20155334 2016-2017-2 《Java程序设计》第九周学习总结

    20155334 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章:整合数据库 16.1 JDBC入门 JDBC(Java DataBase Conn ...

随机推荐

  1. bat脚本实现复制特定后缀文件到其他目录

    @echo off for /r %%a in (*.txt) do copy %%a D:\1 pause 1.for /r主要用于搜索指定路径及其所有子目录中符合要求的文件(/r后如果没有指定目录 ...

  2. mvc.net路由中带特殊字符如【.*/\】等时遇到的天坑

    用mvc.net的路由做网站伪静态时出现的天坑,自己一直没测试出来,竟然要靠客户被坑了后才知道 解决办法 参考https://stackoverflow.com/questions/16581184/ ...

  3. 你不知道的css之 width “继承”篇。

    众所周知,css的三大特性分别是 继承性,层叠性,和优先级. 那么这里就详细说一下css中width的继承性及其特殊情况. 继承性概念详解:css的继承性指的被包在内部的标签拥有外部标签的样式性,子元 ...

  4. 使用mock.js进行数据模拟

    mock.js的文档真的是无力吐槽,只说明API怎么使用,完全不说明mock.js这个工具怎么用到项目里面,最有意思的是google的大部分文章复制官网的API,不管是react还是Vue都是下面的流 ...

  5. python3内置函数大全

    由于面试的时候有时候会问到python的几个基本内置函数,由于记不太清,就比较难受,于是呕心沥血总结了一下python3的基本内置函数 Github源码:        https://github. ...

  6. linux通过命令查找大文件

    一:如果linux根分区使用量达到100%,会造成如下现象: root不能登录 系统不能正常启动 二:通过命令查找根分区内的大文件 1.du -sh /* 2>/dev/null | sort ...

  7. TCGA数据批量下载

    由于经常需要涉及到TCGA数据的分析,我简单的整理了一下数据批量下载的文件后缀. cancer_name <- "SKCM" output_path <- paste0 ...

  8. C++:bitset用法

    std::bitset是STL的一部分,准确地说,std::bitset是一个模板类,它的模板参数不是类型,而整形的数值(这一特性是ISO C++2003的新特性),有了它我们可以像使用数组一样使用位 ...

  9. 20155307 2016-2017 《Java程序设计》第三次实验报告

    (一)敏捷开发与XP 敏捷开发是一种以人为核心.迭代.循序渐进的开发方法."敏捷流程"是一系列价值观和方法论的集合.从2001年开始,一些软件界的专家开始倡导"敏捷&qu ...

  10. iOS 的音频播放

    一.Audio Toolbox 1.使用代码 #import <AudioToolbox/AudioToolbox.h> AudioServicesPlaySystemSound(1106 ...