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

Posted mrf1209

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20172327 2018-2019-1 《程序设计与数据结构》第四周学习总结相关的知识,希望对你有一定的参考价值。

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

教材学习内容总结

第六章 列表

列表集合


1.链表和列表对比:链表是一种实现策略,使用引用来在对象之间创建链接。列表集合是一种概念性表示法,列表可以由链表和数组来实现。

2.栈和队列都是线性结构,其元素只能在末端添加和删除。列表集合更一般化,可以在列表的中间和末端添加和删除元素。

3.列表集合分为3种类型:
有序列表(ordered list):其元素按照元素的某种内在特性进行排序。
无序列表(unordered list):其元素间不具有内在顺序,元素按照它们在列表中的位置进行排序。
索引列表(indexed list):其元素可以用数字索引来引用。

Java API 中的列表


1.Java集合API中提供的列表主要是支持索引列表。

2.Java API没有任何类能直接实现以上描述的有序列表。

3.Arraylist和Linkedlist都实现了java.util.List接口。

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

列表ADT


1.很多常见操作可以为所有类型的列表定义,这些操作之间的差别在于如何添加元素。

2.

操作 描述
removeFirst 在列表中删除第一个元素
removeLast 在列表中删除最后一个元素
remove 在列表中删除某个元素
first 查看位于列表前端的元素
last 查看位于列表末端的元素
contains 确定列表是否含有某个元素
isEmpty 确定列表是否为空
size 确定列表中的元素数量


3.有序列表在添加元素时,只需要用add,位置取决于其键值。无序列表add操作有三种变体:addToFront(元素添加到列表前端)addToRear(元素添加到列表末端)addAfter(把元素添加到某个已知元素后边)

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

  • 问题1:

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

  • 问题1:在实现ArrayOrderedListTest测试时,我遇到了显示最后一个数字时,人家显示为null这个问题。
    图片
  • 解决分析,在我对前面ArrayList类检查时,发现我在显示last时,将rear-1不小心写成rear了,所以它所读取的是最后一个后边的,所以肯定为空。

代码托管

结对及互评

正确使用Markdown语法(加1分)
模板中的要素齐全(加1分)
教材学习中的问题和解决过程, (加3分)
代码调试中的问题和解决过程, 无问题
感想,体会真切的(加1分)
点评认真,能指出博客和代码中的问题的(加1分)

  • 20172317
    基于评分标准,我给以上博客打分:4分。得分情况如下:
  • 20172320
    基于评分标准,我给以上博客打分:8分。得分情况如下:

    • 结对学习内容
      • 教材第6章
      • 完成课后自测题,并参考答案学习
      • 完成课后练习题
      • 完成程序设计项目:至少完成PP6.8、PP6.11、PP6.17

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

这周学的有点麻烦,栈还行,就是链表有点糊涂。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 0/0 1/1 8/8
第二周 1306/1306 1/2 20/28
第三周 1291/2597 1/3 18/46
第四周 4361/6958 2/3 20/66

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

  • 计划学习时间:10小时

  • 实际学习时间:8小时

  • 改进情况:

(有空多看看现代软件工程 课件
软件工程师能力自我评价表
)

参考资料





























以上是关于20172327 2018-2019-1 《程序设计与数据结构》第四周学习总结的主要内容,如果未能解决你的问题,请参考以下文章

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

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

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

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

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

20172327 2017-2018-2 《程序设计与数据结构》实验5报告