当前位置: 首页 > news >正文

学号 2017-2018-20172309 《程序设计与数据结构》第10周学习总结

学号 2017-2018-20172309 《程序设计与数据结构》第10周学习总结

教材学习内容总结

  • 集合与数据结构
    • 集合是一种对象,类似于保存其他对象的存储库。
    • 我们常常用集合表示一个专门用于保存元素的对象,并且该对象还提供增添、删除等管理所保存元素的服务。
    • 集合分同构和异构。
    • 对象具有定义良好的接口,从而成为一种实现集合的完善机制。
  • 数据结构的动态表示
    • 数组具有局限性,在存在期间具有固定的大小。动态数据结构的大小规模随需要增长和收缩。
    • 一个动态数据结构用链来实现,利用对象引用作为连接对象间的链。
  • 其他的动态列表
    • 双向链表:双向链表的每一个节点都有两个引用。一个引用指向该节点前的一个节点,另一个引用指向该节点的后一个节点。
    • 头节点:链表中的头节点是一个特殊的节点,包含了有关链表信息,如指向链表头和链表尾的引用及一个跟踪记录链表当前节点数的整型变量。
  • 线性数据结构
    • 队列:队列是一种以先进先出方式管理数据的线性数据结构。
    • 堆栈:堆栈是一种以后进先出方式管理数据的线性数据结构。
  • 非线性数据结构
    • 树:树是一个非线性数据结构,由一个根节点和构成层次结构的多个节点组成。除根节点外的所有节点称为内部节点,没有子节点的节点称为叶节点。
    • 图:图是 非线性数据结构,是用常见的编来连接节点。
  • java集合类API
    • ArrayList代表的是列表集合并且用基本的数组类型实现。
    • LinkedList表明这是一个用动态内部链实现的列表集合。
    • 泛型:指一个集合所管理的对象的类型要在实例化该集合对象时才确定。java集合类API中定义的类称为泛型
    • 泛型保证了集合中对象类型的兼容性。

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

  • 问题1:ArrayList和LinkedList类分别有什么优缺点?
  • 问题1解决方案:
    通过百度查询得:
    1333063-20180519093402192-583774349.png
    1333063-20180519093446837-1351593309.png
    1333063-20180519093518081-563791512.png
  • 问题2:如何理解泛型?
  • 问题2解决方案:

    1.概述:是一种把明确类型的工作推迟到创建对象或者调用方法的时候才去明确的特殊的类型。
    2.格式:
    <数据类型>
    注意:**该数据类型只能是引用类型**。
    3.好处:
    A:把运行时期的问题提前到了编译期间
    B:避免了强制类型转换
    C:优化了程序设计,解决了黄色警告线问题,让程序更安全

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

  • 问题1:如何理解这一段代码?
>       public void add(DVD dvd)
>      {
>        DVDNode node = new DVDNode(dvd);
>        DVDNode current;
>
>         if(list==null)
>             list=node;
>         else
>         {
>             current = list;
>             while(current.next!=null)
>                 current=current.next;
>             current.next=node;
>         }
>     }
  • 问题1解决方案:
    1333063-20180519104636735-462405507.png
  • 问题2:PP13.3运行时显示出来的为地址:
    1333063-20180519183630557-1637335298.png
  • 问题2解决方案:出现这个问题我知道是因为没有写toString()方法,因为toString的内容是一个数值,所以以为不用toString,但事实说明确实需要toString,而且我还忘了怎么做!因此我的解决方案是使用自动生成toString()方法。
    1333063-20180519182728434-1839729035.png
    结果是
    1333063-20180519182745945-528094572.png
  • 问题3:在做PP13.3出现空指针!
    1333063-20180519183002692-1346603058.png
  • 解决方案:有错误提示可知是因为在第60行出现错误的!因此我找到了错误:
    1333063-20180519183054891-1154209574.png
    图中箭头所指会循环直到current2为null,因此在下面的一个方框中的赋值是不正确的,相当于num没有节点当做载体。
    因此我转变思路:
    1333063-20180519183406183-1540441562.png

代码托管

1333063-20180519185039532-1446809507.png
1333063-20180519185114854-381377713.png

上周考试错题总结

  • 错题1及原因,理解情况:
    1333063-20180519110715484-642500331.png
    做这题时没有考虑全面,忽略了输入值为负值的情况。

  • 错题2及原因,理解情况:
    1333063-20180519111211703-430463703.png
    递归的情况下,该方法使用相同的参数调用自己,所以n不会改变,因此如果(n> 0)最初为真,它将保持为真。
  • 错题3及原因,理解情况:
    1333063-20180519111445337-1213088142.png
    考虑过多,直接递归就是自己调用自己,间接递归即中间还有一个方法。
  • 错题4及原因,理解情况:
    1333063-20180519111722528-116444471.png
    无限循环和递归都是相似的,因为它们继续无限地重复。 编译器或运行时(JVM)都不能捕获它们。
  • 错题5及原因,理解情况:
    1333063-20180519111922268-1562531581.png
    这次做了一遍,发现是正确的,不知道以前怎么做错了。

    点评模板:

优点与不足:

  • 博客中值得学习的或问题:
    • 内容解释结合图片来解释,显而易懂。
    • 重点用不同的颜色突出。
    • 对图与树的解释详细。
  • 代码中值得学习的或问题:
    • 代码解释有点少,可能是作业不是很难的缘故。
  • 基于评分标准,我给本博客打分:14分。

    点评过的同学博客和代码

  • 本周结对学习情况
    • 20172310
    • 结对学习内容
      • 课本第十章内容:集合与数据结构、数据结构的动态表示
      • 复习了堆栈的内容。
      • 树与图。
  • 上周博客互评情况
    • 20172309
    • 20172310

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

这一章非常的抽象,有点不适合我这种智商太高的人,导致我得想好久,不!应该是学好久。不过还好,最后还是弄懂了点皮毛。在这个过程中,发现自己非常的懒,想一个问题时,总是不善于深究。总是大脑自动跳出来,特别是当遇见那种反复循环的问题时,大脑不是不跳就是跳的太快,导致自己都跟不上。o(╥﹏╥)o真是服了自己!!

学习进度条

代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
目标5000行30篇400小时
第一周075/2001/105/20
第二周560/5001/213/38
第三周972/10001/421/60
第四周694/16661/521/90
第五周1544/30951/630/90
第六周600/36271/730/120
第七周544/42002/920/140
第八周907/51072/1020/160
第九周700/58071/1120/180
第十周900/67822/1320/200

参考资料

1.集合总结笔记(jdk 1.6)——ArrayList/LinkedList
2.数据结构——图
3.Java学习笔记(第8版)》学习指导
4.命令行参数总结

转载于:https://www.cnblogs.com/dky-wzw/p/9059285.html

相关文章:

  • laravel 视模板情况加载视图
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • 浏览器里的文件管理小系统filedir.php,返回上级目录时有个“浏览”链接总掉了...
  • 数据可视化Seaborn从零开始学习教程(二) 颜色调控篇
  • BaseResponse公共响应类
  • js正则验证代码库
  • 网络打印机拒绝访问,无法连接处理方法汇总
  • 内因是推动发展的主导因素
  • 在eclipse中配置c++ 开发环境的记录
  • 并发、并行与多线程关系
  • oracle表结构及数据的导出导入
  • angularjs4+ionic3集成搭建
  • 【C#】获取我的电脑的名字,如This PC、这台计算机
  • 对缓存使用的一些思考
  • nginx负载均衡及配置
  • 08.Android之View事件问题
  • Android开源项目规范总结
  • ESLint简单操作
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • Java 23种设计模式 之单例模式 7种实现方式
  • Javascript Math对象和Date对象常用方法详解
  • js算法-归并排序(merge_sort)
  • Just for fun——迅速写完快速排序
  • Linux中的硬链接与软链接
  • Python3爬取英雄联盟英雄皮肤大图
  • python大佬养成计划----difflib模块
  • Sass 快速入门教程
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 前端知识点整理(待续)
  • 前嗅ForeSpider教程:创建模板
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • 智能合约开发环境搭建及Hello World合约
  • ionic异常记录
  • 阿里云ACE认证之理解CDN技术
  • 说说我为什么看好Spring Cloud Alibaba
  • # Java NIO(一)FileChannel
  • #Lua:Lua调用C++生成的DLL库
  • $jQuery 重写Alert样式方法
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (javascript)再说document.body.scrollTop的使用问题
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (四)JPA - JQPL 实现增删改查
  • (一)VirtualBox安装增强功能
  • (一)WLAN定义和基本架构转
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)一些感悟
  • (转载)深入super,看Python如何解决钻石继承难题
  • .class文件转换.java_从一个class文件深入理解Java字节码结构
  • .net core Swagger 过滤部分Api
  • .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)...
  • .net操作Excel出错解决
  • .Net的DataSet直接与SQL2005交互