20172319 2018.09.17-09.23
《程序设计与数据结构》第3周学习总结
目录
教材学习内容总结
第五章 队列:
- 5.1 概述:
- 队列(queue): 一种线性集合,其元素从一端加入,从另一端删除。处理方式: 先进先出(First In First Out, FIFO)。
- 比较FIFO与LIFO两种处理方式:
-
- 栈中:处理过程只在栈的某一端;
-
- 队列中:处理过程可在两端进行。
- 队列的操作:
操作 | 代码行数(新增/累积) |
---|---|
enqueue | 向队列末端添加一个元素 |
第一周 | 0/0 |
第二周 | 935/935 |
- 5.2 JavaAPI中的队列: 线性集合
后进先出(Last in , first out, LIFO) : 栈的基本使用就是用于颠倒顺序;
5.3 使用队列:代码密钥: 已在之前的博客中提过,这里不再重复叙述。
- 5.4 使用队列:售票口模拟:
- 中缀表达式:6 - 9
- 后缀表达式:6 9 -
计算过程:由左至右,将扫描到的操作符应用与前面相邻的两个操作数
- 5.5 队列ADT:
异常是一个对象,其定义了一种非正常或错误的情况,但其不同于错误(无法恢复),其可以被捕获或适当地处理。
- 5.6 用链表实现队列:
java接口定义了一个抽象方法集,可以将抽象类型的概念与实现分隔开
- 5.6.1 enqueue操作:
- 链式结构: 使用对象引用变量(指针)来创建对象之间的链接。
链表由许多对象构成,每个对象指向了链表中的下一个对象。
- 5.6.2 dequeue操作:
访问元素:从第一个链表元素开始,顺着链表往下进行。
- 5.6.3 其他操作:
访问元素:从第一个链表元素开始,顺着链表往下进行。
- 5.7 用数组实现队列:
容量:数组的单元数量,数组一旦创建好,其不可变。
- 5.7.1 enqueue操作:
- 链式结构: 使用对象引用变量(指针)来创建对象之间的链接。
链表由许多对象构成,每个对象指向了链表中的下一个对象。
- 5.7.2 dequeue操作:
访问元素:从第一个链表元素开始,顺着链表往下进行。
- 5.7.3 其他操作:
访问元素:从第一个链表元素开始,顺着链表往下进行。
- 5.8 双端队列:
数组实现栈的一个应用实例,包含栈的一些基本操作。
教材学习中的问题和解决过程
- 问题1:无。
- 解决:
代码调试中的问题和解决过程
问题1:无法对链表的首节点做操作。
解决:可以看到,return获得的Head本是677,但在实际应用时又变为676,最终使用
System.out.println
- 直接输出,虽然面板上能看见其在链表的头部,但在内部并没有接上链表,只是先于链表前打印。
代码托管
上周考试错题总结
错题1:
解决: 误选,堆栈可用于保存数据。
错题2:
- 解决:分不清是2n还是2的n次方。
结对及互评
点评过的同学博客和代码
- 本周结对学习情况:
- 20172316赵乾宸
- 博客中值得学习的或存在问题:
- 博客中值得学习的或存在问题:
- 对于异常的解释有些许误解。
- 20172316赵乾宸
其他(感悟、思考等,可选)
- 无。
返回目录
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | |
---|---|---|---|
目标 | 3000行 | 15篇 | 300小时 |
第一周 | 0/0 | 1/1 | 12/12 |
第二周 | 935/935 | 1/2 | 24/36 |
参考资料
数据结构(Java实现)之单向链表的节点表示、插入、删除、单向链表反转和串联
【数据结构】链表的原理及java实现
java集合包总结(添加、删除等操作实现原理)