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小时

  • 改进情况:

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

参考资料

猜你喜欢

转载自www.cnblogs.com/mrf1209/p/9751107.html