20172321 2018-2019《Java软件结构与数据结构》第三周学习总结
教材学习内容总结
第五章
- 5.1概述
- 队列是一种线性集合,其元素从一端加入,从另一端删除;队列的处理方式是先进先出(First in First out)。
- 与栈的比较(LIFO)
- 栈是一端操作,先进后出
- 队列是两端操作,先进先出
栈的一些操作
操作 描述 enqueue 向队列末端添加一个元素 dequeue 从队列前端删除一个元素 first 考察队列前端的那个元素 isEmpty 判定队列是否为空 size 判定队列中的元素数目 toString 返回队列中的字符串表示 5.2javaAPI中的队列:Java集合API并没有提供队列类,而是提供了一个Queue接口,由多个类(包括LinkedList类)来实现的。
5.5队列ADT
- 接口类中的各个方法
public interface QueueADT<T> {
public void enqueue(T element);
public T dequeue();
public T first();
public boolean isEmpty();
public int size();
public String toString();
}
}
5.6用链表实现队列:要用链表实现栈,就要操作链表的两端。
- 需创建两个引用:一个指向链表首元素(head),一个指向链表末元素(tail)
- 另需一个整型变量count来跟踪队列中的元素数目
5.7用数组实现队列
- 队列操作会修改集合的两端,因此将队列的某一端固定在数组的索引0处,所有元素不间断地存放在数组中。
- dequeue操作的复杂度为O(n),所以用固定数组实现栈的效率较低
5.8双端队列
- 队列的扩展,允许从队列的两端添加、删除和查看元素。
教材学习中的问题和解决过程
- 问题1:打教材上的代码的时候有些地方总是红色,反复检查发现和教材一致没有打错,后来知道教材其实有一些问题。
- 解答:比如说这里,教材上是
public CircularArrayQueue() {
this (DEFAULT_CAPACITY);
}
这个()里就会报错,我直接把里面改成100就好了
代码调试中的问题和解决过程
- 在作LinkedQueue类的
first()
方法的时候,我是把链表实现栈的peek()
方法复制过来修改的,但是测试总是有问题,而且在CircularArrayQueue类也是这么做出来的却没有问题。
- 最后我还是不知道为什么,我直接把
// if (isEmpty())
// throw new EmptyCollectionException("queue");
注释掉了就可以了,等我再想想正常的方法再来修改。
更新 更新 更新
我发现了是我tostring的方法有问题,原来这样写,使用这个方法后栈就被清空了,所以弹出会错误,改为之后就可以了
代码托管
上周考试错题总结
结对及互评
- 20172324曾程
- 博客中值得学习的或问题:
- 书上代码的学习很到位
- 代码调试环节比较详细,从截图上来看注释也很规范整齐,值得学习。
- 基于评分标准,我给本博客打分:11分。得分情况如下:
- 正确使用Markdown语法(加1分)
- 模板中的要素齐全(加1分)
- 教材学习中的问题和解决过程, 加4分
- 代码调试中的问题和解决过程, 加4分
- 本周有效代码超过300分行,加2分
- 进度条中记录学习时间与改进情况的加1分
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | |
---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 |
第一周 | 0/0 | 1/1 | 8/8 |
第二周 | 671/671 | 1/2 | 17/25 |
第二周 | 345/1016 | 1/3 | 15/40 |
参考资料
- [Java软件结构与数据结构](第四版)
- java集合包总结
- 《Java学习笔记(第8版)》学习指导
20172321 2018-2019《Java软件结构与数据结构》第三周学习总结的更多相关文章
- 20172328 2018—2019《Java软件结构与数据结构》第二周学习总结
20172328 2018-2019<Java软件结构与数据结构>第二周学习总结 概述 Generalization 本周学习了第三章集合概述--栈和第四章链式结构--栈.主要讨论了集合以 ...
- 20172328 2018-2019《Java软件结构与数据结构》第一周学习总结
20172328 2018-2019<Java软件结构与数据结构>第一周学习总结 概述 Generalization 本周学习了软件质量.数据结构以及算法分析的具体内容,主要依托于所用教材 ...
- 20172328 2018-2019《Java软件结构与数据结构》第九周学习总结
20172328 2018-2019<Java软件结构与数据结构>第九周学习总结 概述 Generalization 本周学习了无向图.有向图.带权图.常用的图算法.图的实现策略. 教材学 ...
- 2018-2019-20172329 《Java软件结构与数据结构》第九周学习总结
2018-2019-20172329 <Java软件结构与数据结构>第九周学习总结 教材学习内容总结 <Java软件结构与数据结构>第十五章-图 一.图及无向图 1.图的相关概 ...
- 2018-2019-20172321 《Java软件结构与数据结构》第九周学习总结
2018-2019-20172321 <Java软件结构与数据结构>第九周学习总结 教材学习内容总结 第15章 图 无向图 图由顶点和边组成. 顶点由名字或标号来表示,如:A.B.C.D: ...
- 《JAVA软件结构与数据结构》第一周学习总结
学号 20172326 <JAVA软件结构与数据结构>第一周学习总结 教材学习内容总结 软件质量的几大特性 增长函数与大O记法 大O记法用来表示表示增长函数,从而来表示算法的复杂度 算法的 ...
- 2018-2019-20172329 《Java软件结构与数据结构》第二周学习总结
2018-2019-20172329 <Java软件结构与数据结构>第二周学习总结 教材学习内容总结 <Java软件结构与数据结构>第三章 集合概述--栈 一.集合 1.我们印 ...
- 20172305 2018-2019-1 《Java软件结构与数据结构》第二周学习总结
20172305 2018-2019-1 <Java软件结构与数据结构>第二周学习总结 教材学习内容总结 本周内容主要为书第三章和第四章的内容: 第三章(以数组来替代栈的作用) 集合(聚集 ...
- 20172305 2018-2019-1 《Java软件结构与数据结构》第九周学习总结
20172305 2018-2019-1 <Java软件结构与数据结构>第九周学习总结 教材学习内容总结 本周内容主要为书第十五章内容: 图(结点和结点之间的连接构成) 顶点:结点 边:结 ...
- 20172329 2018-2019《Java软件结构与数据结构》第一周学习总结
2018-2019-20172329 <Java软件结构与数据结构>第一周学习总结 在这学期就已经大二了,也已经步入了学习专业课的核心时间,在这个阶段,我们应该了解自己的学习情况,针对自己 ...
随机推荐
- thinkphp3.2 上传图片兼容小程序
第一步在配置文件中设置图片的大小和路径 return array( //'配置项'=>'配置值' 'img_save'=>[ 'size' =>[ 'app_gszc_Card'=& ...
- oracle相关操作,存储、临时表空间、用户操作、启动过程
表空间:此空间是用来进行数据存储的(表.function.存储过程等),所以是实际物理存储区域.临时表空间:主要用途是在数据库进行排序运算[如创建索引.order by及group by.distin ...
- Burp 之Intruder
攻击类型: (1)Sniper:测试完第一个变量后,就测试下一个变量,一次向下测试,每次只测试一个变量 适用于单变量 (2)Battering ram:只有一个payload,该payload会同时测 ...
- MySQL5.7.22版本的安装和调试
1:安装前的准备工作 需要的软件: boost_1_59_0.tar.gz,cmake-3.6.1.tar.gz,mysql-5.7.22.tar.gz 开始安装MySQL 2.1 检查cmake [ ...
- NCBI SRA数据库使用详解
转:https://shengxin.ren/article/16 https://www.cnblogs.com/lmt921108/p/7442699.html 批量下载SRA http://ww ...
- 证明SG中梯度的期望等于GD的梯度
参考链接: https://zhuanlan.zhihu.com/p/36435504
- SAP 直接修改程序的方法
一般项目上都会有这么个神奇的程序,能在测试机和生产机上直接修改程序... REPORT ztest_change. "变量定义 , line() TYPE c, "如果代码中某行大 ...
- Oracle Data Provider for .NET Support for Microsoft .NET Core
Oracle Data Provider for .NET Support for Microsoft .NET Core的官方地址,记录下来,按照官方描述,会在2017年底左右发布,暂时还没有看到相 ...
- Reflow & Repaint
http://www.phpied.com/rendering-repaint-reflowrelayout-restyle/ http://segmentfault.com/a/1190000002 ...
- 20155220 2016-2017-2 《Java程序设计》第10周学习总结
20155220 2016-2017-2 <Java程序设计>第10周学习总结 教材内容学习总结 计算机网络编程概述 路由器和交换机组成了核心的计算机网络,计算机只是这个网络上的节点以及控 ...