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。

博客互评

  • 博客中值得学习的或问题:
    20172301 郭恺同学本周的博客局以往来看略显逊色,内容不够饱满。不过对教材的知识深入的了解了。并且也吸收了学姐上周给他的评价,对教材上的知识总结进行了加深。
    20172328 李馨雨同学 不亏为学习部的经营教材内容总结的详略得当,井井有条,对问题的理解和反省也十分到位,那一手环形数组的图片更是深深的折服了我。

点评过的同学博客和代码

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

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

学习进度条

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

参考资料

1.蓝墨云班课
2.java软件结构与数据结构

猜你喜欢

转载自www.cnblogs.com/15248252144dzx/p/9751888.html