20172304 《程序设计与数据结构》第四周学习总结

20172304 《程序设计与数据结构》第四周学习总结

教材学习内容总结

第六章主要介绍了列表,这个列表是一种概念上的笼统的定义。

列表包括链表和数组。

列表分为:有序列表,无序列表,索引列表。

有序列表 其元素按照元素的某种内在特性进行排序。
无序列表 其元素件不具有内在顺序,元素按照他们在列表中的位置进行排序
索引列表 其元素可以用数字索引来引用

有序列表和无序列表在插入式有区别,有序列表需要做到插入之后还是有序的。而无序列表不是这样的。而索引列表虽然可以通过索引进行插入,删除操作,但是还是要保持连续。要做到索引之间是连续的。

java集合API中的列表

方法 描述
add(E element) 往列表的末端添加一个元素
add(int index,E element) 在指定索引出插入一个元素
get(int index) 返回指定索引处的元素
remove(int index) 删除指定索引处的元素
remove(E object) 删除指定对象的第一个出现
set(int index,E element) 替代指定索引处的元素
size() 返回列表中的元素数量

使用无序列表:学习计划

定义了三个类

Course:包含四个变量

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

  • 问题1:有关环形数组的相关问题。
  • 问题1解决方案:一开始真的很懵懂,环?怎么能把数组掰弯!变成一个环?后来经过长期的艰苦奋斗,终于理解了,这个环,在我的理解中并不是一个真正的环而是一个逻辑上的环,通过两个索引值进行标记确定首尾,尾索引可以借助“rear =(rear+1)%queue.length”这条语句在到达索引值上线时过渡到数组的首端,从而在真正的逻辑上形成一个真正环形数组。

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

  • 问题1:在进行测试时发现无法引用变量。还有toString方法没有办法正常调用

  • 问题1解决方案:后来发现是没有加运行函数。还有在toString的函数里没有将那个环形数组中开头的索引值随循环做自减运算。
  • 问题2:发现一堆错误。

  • 问题2解决方案:最终发现是自己实现的isEmpty方法有问题,后将if的判断语句由(head.getelement==null)改为(head==null)就OK了。

代码托管

错题总结

第三周&第四周错题

错题一:

错题一解答:

栈的pop操作返回的显然是一个元素而不是一个节点,这是当时马虎。

错题二:

错题二解答:后来在编码过程中实践了是正确的。

错题三:

错题三解答:后面已经说了不是引用的类型,但是我还是错选了C,应该选A对象的类型。

错题四:

错题四解答:集合中储存的对象只包含对象本身,并不会有其具体实现的细节。

错题五:

错题五解析:这是很明显得是,在单向列表中,其中常的打印方式必然是从头部开始的,对应实现的栈的出入栈操作也是在链表的头部,也就是前部实现的。

第五周

错题一:

错题一解析:这道题我记得一开始我也想选A来着,知识不知道后来莫名其妙的选择了B。

补充作业

技能 课前 课后
Programming: Comprehension(程序理解) (如何理解已有的程序,通过阅读,分析,debug) 4 7
Programming: Design (架构设计, 模块化设计,接口设计) 2 6
Programming: Test (单元测试、代码覆盖率) 2 4
Program: Performance (效能分析和改进) 1 5
Programming: Code Review/Code Quality (代码复审/代码规范/代码质量) 1 3
Programming: Command line and files (处理命令行参数和文件系统) 1 4
Personal Software Process (个人软件过程) :个人源码管理(TFS/GitHub) 3 7

博客互评

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

    20172301 郭恺同学本周的博客局以往来看略显逊色,内容不够饱满。不过对教材的知识深入的了解了。并且也吸收了学姐上周给他的评价,对教材上的知识总结进行了加深。

    20172328 李馨雨同学 不亏为学习部的经营教材内容总结的详略得当,井井有条,对问题的理解和反省也十分到位,那一手环形数组的图片更是深深的折服了我。

点评过的同学博客和代码

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

   本周经过了紧张而充分的学习,学会了用链表实现队列用数组实现队列等。还接触到了存在于逻辑上的数组——“环形数组”。感觉自己从灵魂上的到了升华。路漫漫其修远兮,吾将上下而求索。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 30/30 1/1 10/10
第二周 766/796 1/2 40/50
第三周 817/1613 1/3 20/7

参考资料

1.蓝墨云班课

2.java软件结构与数据结构

---恢复内容结束---

原文地址:https://www.cnblogs.com/15248252144dzx/p/9751888.html

时间: 2024-08-29 14:35:25

20172304 《程序设计与数据结构》第四周学习总结的相关文章

2014025635(09)《嵌入式程序设计》第三,四周学习总结

1.第三四周学习情况 本周学习进度不慢,上课也能跟着老师敲代码了,老师说一些指令也知道是什么意思了,这两周我认为非常重要的快捷键就是tab键,补全代码,我自己手敲肯定出现很多错误,必须Tab键!!!!!!!!!!!!!!! 2.1实验楼学习内容 2.1.1安装arm-linux-gcc交叉编译工具 先复制链接到剪切板上,保存关闭剪切板 输入wget命令,然后再复制粘贴,就可以将交叉编译工具下载到实验楼环境 2.1.2.解压缩交叉编译工具源码 解压缩后生成的目录是gcc-3.4.6-glibc-2

201521123116 《java程序设计》第十四周学习总结

1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. ①关系型数据库的定义:使用表(table)来存储数据:使用行(row)区分不同- 记录,每行代表一条记录:每一行由若干列(column,字段)组成. ②在JDBC中释放资源时,按照ResultSet.Statement.Connection的顺序依次关闭. ③JDBC编程一般步骤 1.与数据库建立连接(Connection) 2.向数据库发送SQL语句(statement) 3.获得和处理查询或更新语句返回的

201671010119 2016-2017-2《Java程序设计》第十四周学习心得

本周老师对第十一章事件处理进行了重点讲解 ,讲解之前老师先在PPT上放了几道题目,对我们自己学习十一章进行了一个随堂测验.通过这次随堂测验,我觉得我看书还是不够仔细,有些该注意的细节没有注意到.通过测验,我知道了属于容器的组件有JPanel:paintComponent方法有一个Graphics类型的参数:在类中若要处理ActionEvent事件,则该类需要实现的接口是:ActionListener:容器通过方法setLayout()设置某种布局.在课后我也找到了这些知识点,结合举例,使我对这些

201621123014《Java程序设计》第十四周学习总结

1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结与数据库相关内容. 2. 使用数据库技术改造你的系统 2.1 简述如何使用数据库技术改造你的系统.要建立什么表?截图你的表设计. 答:将原来存放在文件中的数据存放到数据库中:从借书方面来看,要建立学生表students和书表books. 2.2 系统中使用到了JDBC中什么关键类? 答:使用了JDBC的DriverManager.Connection.Statement.ResultSet等类. 2.3 截图数据库相关模块的关键

201671010130 2016-2017-2 《Java程序设计》第十四周学习小结

模型(model):用于存储数据的对象. 视图(view):为模型提供数据显示的对象. 控制器(controller):处理用户的交互操作,对于用户的操作作出响应,让模型和视图进行必要的交互,即通过视图修改.获取模型中的数据:当模型中的数据变化时,让视图更新显示. 在网格布局对象的构造器中,需要指定行数和列数:panel.setLayout(new GridLayout(x,y)); 消息对话框的创建 javax.swing包中的JOptionPane类的静态方法: public static

20172304 2017-2018-2 《程序设计与数据结构》第四周学习总结

20172304 2017-2018-2 <程序设计与数据结构>第四周学习总结 教材学习内容总结 本周学习了第四章和第七章的内容,其中第四章主要讲解了编写类的方法和步骤.而第七章则对类与对象的关系进行了阐述并介绍了类间关系.介绍了静态方法,还有接口,方法设计方法重载还有设置等等. 教材学习中的问题和解决过程 问题1:有关this引用的用法不是很明确. 问题1解决方案:解决方案网址(http://blog.sina.com.cn/s/blog_6a6badc90100t8hm.html) 问题2

20172301 《程序设计与数据结构》第四周学习总结

20172301 <程序设计与数据结构>第四周学习总结 教材学习内容总结 列表:列表集合没有内在的容量大小,它可以随着需要而增大. 有序列表:列表中元素有内在关联,直接定义了元素之间的顺序. 无序列表:元素按着使用者所选择的任意方式排序 索引列表:元素可以用索引来引用. 实现Serializable接口.目的是为了某个对象能使用串行化进行存储. 该接口中没有任何方法,只是表明该对象可以转换为串行化表示形式. Josephus问题是适合用索引列表来求解的计算问题.这类问题着眼于,当列表中的事件不

20172304 《程序设计与数据结构》第六周学习总结

20172304 <程序设计与数据结构>第六周学习总结 教材学习内容总结 本周主要学习的是树的内容,树由结点和边组成,位于树中较低层的结点是上一层结点的孩子.一个结点只有一个双亲,统一双亲的两个节点称为兄弟.没有任何孩子的 的结点称为叶子.一个至少有一个孩子的非根结点称为一个内部结点.如果一个结点在从跟开始的路径中位于另一结点之上,则该节点就是它的祖先.沿着其实子某一特定节点的路径可以的到达的结点是该节点的子孙. 10.1.1树的分类 树中任一结点可以具有的最大孩子数目交租该树的度.对结点所含

20172304《程序设计与数据结构》第八周学习总结

20172304 <程序设计与数据结构>第八周学习总结 教材学习内容总结 本周主要学习的内容是堆.堆是二叉树的扩展 什么是堆 堆就是具有两个附加属性的一棵二叉树 1.它是一棵完全树. 2.对每一结点,他小于或等于其左孩子和右孩子(最小堆)最大堆与最小堆相反. 堆的操作 操作 说明 addElement 将给定元素添加到该堆中 removeMin 删除堆的最小元素 findMin 返回一个指向堆中最小元素的引用 addElement操作 方法将给定的元素添加到堆中恰当的位置处,且维持该堆的完全性