20162325 金立清 S2 W5 C14
20162325 2017-2018-2 《程序设计与数据结构》第5周学习总结
关键内容摘要
集合是收集并组织其他对象的对象
集合中的元素一般由加入集合的次序或元素之间某些固有的关系而组织
集合是隐藏其实现细节的一个抽象名称
数据结构是用来实现集合的基本程序设计结构
栈以LIFO的方式处理元素——最后进入的元素最先离开
程序员应该选择与所需管理的数据的类型相匹配的结构
多态引用使用对象的类型而不是引用的类型来判定要调用的是哪个方法
Java接口定义了一组抽象方法,能用来将抽象数据类型概念与它的实现分开
通通常过使用接口名作为返回值类型,接口机制可让方法与实现栈的具体的类分开
栈是计算后缀表达式时使用的理想数据结构
错误和异常代表不常见或不正确的处理
集合操作的实现细节不应该影响使用者与集合进行交互的方式
处理异常情形的方式,决定是集合还是集合的使用者来控制具体的行为
考虑到效率,数组实现的栈将栈底放在下标为0的位置
可用对象引用变量来创建链式结构
链表由对象组成,其中每个对象指向表中的下一个对象
链表根据需要动态变大,本质上没有容量限制
修改引用的次序对链表的维护很重要
处理链表中的第1个节点通常需要特殊处理
实现带哨兵结点或虚位结点作为第1个结点的表,可以去掉处理第1个结点这种特殊情形
保存在集合中的对象不能包含所用数据结构的任何实现细节
有效实现了相关操作的集合的任何一种实现方案都能用来解决问题
栈的链式实现方案在链表的一端添加和删除元素
java.util.Stack类派生于Vector,给栈带来一些不适当的操作
Tips
14.1
集合分为线性和非线性
集合是一个抽象概念,用户通过接口与集合进行交互
14.2
栈是一个线性集合,其元素的添加和删除都在一端进行
如果发现在解决一个具体问题时需要访问集合的元素或是集合底部的元素,则不适合找。
当不允许改变栈又想查看栈中的内容时,可以用toString操作
- 栈的概念示意图

14.3
类型兼容的概念是指将一个对象赋给一个引用是否合法
ArrayList保持任何类型的对象
使用泛型可以创建能用来安全有效地保存任意对象的集合
14.4
字处理器中的回退操作常用栈来实现
14.5
后缀表达式计算规则:自左至右扫描,将每步运算作用于紧邻它之前的两个操作数,并用结果代替这个运算符
一个较大的后缀表达式用栈最合适
操作数作为Integer对象入栈,而不是作为基本的整型类型的值入栈。因为栈数据结构保存的是对象
14.8
在Java Collections API框架中,类的名字既表示数据结构又表示集合
push、pop、peek的阶都是O(1)
14.9
存储在链表中的对象常称为表的结点
必须使用一个单独的引用变量指向表的第一个结点,结点的next引用为null时表示表的结束
数组固定大小,链表无容量上限
教材学习中的问题和解决过程
问题1:ADT是什么?看了书还不太明白
问题1解决方案:抽象数据类型(ADT)是指一个数学模型及定义在该模型上的一组操作。 参考这篇博客,里面的比喻十分精妙且易懂。
问题2:哨兵结点是什么?有什么作用?怎么使用?
问题2解决方案:参考线性链表--哨兵节点
代码调试中的问题和解决过程
- 问题1:无法正常
git add,git commit,文件名显示黑色,但码云上并没有上传成功 - 问题1解决方案:王老师耐心帮我查找问题,点击
VCS - Refresh File Status后便恢复正常
代码托管

上周考试错题总结
- 还未公布答案和解析
本周结对学习情况
[20162311] (http://www.cnblogs.com/-zzr-/p/7663412.html)
结对学习内容
- 课上测试的排序和查找测试
- 用链表和数组实现栈
其他(感悟、思考等,可选)
- 五篇博客真的是要写到吐血,加上还有校运会训练,出礼仪,举办老乡会等活动,以至于熬了这学期以来的第一个通宵。。。
学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 目标 | 5000行 | 30篇 | 400小时 | |
| 第一周 | 58/58 | 1/1 | 10/10 | |
| 第二周 | 8/18 | |||
| 第三周 | 134/192 | 3/4 | 12/ 30 | |
| 第四周 | 2/6 | 12/42 | ||
| 第五&六周 | 750/ 6595 | 5/11 | 24/66 |
计划学习时间:20小时
实际学习时间:20小时
改进情况:多思考,多尝试
参考资料
- 《Java程序设计与数据结构教程(第二版)》学习指导
- 栈 PPT
蓝墨视频
20162325 金立清 S2 W5 C14的更多相关文章
- 20162325 金立清 S2 W9 C18
20162325 2017-2018-2 <程序设计与数据结构>第9周学习总结 教材学习内容概要 堆是一棵完全二叉树,其中每个元素大于等于其所有子结点的值. 向堆中添加一个元素的方法是,首 ...
- 20162325 金立清 S2 W7 C16
20162325 2017-2018-2 <程序设计与数据结构>第7周学习总结 教材学习内容概要 树是非线性结构,其元素组织为一个层次结构 树的度表示树种任意结点的最大子结点数 有m个元素 ...
- 20162325 金立清 S2 W3 C13
20162325 2017-2018-2 <程序设计与数据结构>第3周学习总结 教材学习内容概要 查找是在一组项内找到指定目标或是确定目标不存在的过程 高效的查找使得比较的次数最少 Com ...
- 20162325 金立清 S2 W11 C20
20162325 2017-2018-2 <程序设计与数据结构>第11周学习总结 教材关键概念摘要 在哈希方法中,元素保存在哈希表中,其在表中的位置由哈希函数确定. 两个元素或关键字映射到 ...
- 20162325 金立清 S2 W10 C19
20162325 2017-2018-2 <程序设计与数据结构>第10周学习总结 认识 线性表和树两类数据结构,线性表中的元素是"一对一"的关系,树中的元素是" ...
- 20162325 金立清 S2 W6 C15
20162325 2017-2018-2 <程序设计与数据结构>第6周学习总结 教材学习内容概要 队列是先进先出(FIFO)的集合 队列是保存重复编码k值的一种有效结构 实现模拟时常用队列 ...
- 20162325 金立清 S2 W8 C17
20162325 2017-2018-2 <程序设计与数据结构>第8周学习总结 教材学习内容概要 二叉查找树是一棵二叉树,对于其中的每个结点,左子树上的元素小于父结点的值,而右子树上的元素 ...
- 20162325金立清 实验四 Android程序设计 实验报告
实验四 Android程序设计 实验报告 代码托管地址 码云链接 实验内容 安装使用Android Stuidio Activity测试 UI测试 布局测试 事件处理测试 Android程序设计-1 ...
- 2017-2018 第一学期201623班《程序设计与数据结构》-第5&6周作业问题总结
一.作业内容 第5周作业 http://www.cnblogs.com/rocedu/p/7484252.html#WEEK05 第6周作业 http://www.cnblogs.com/rocedu ...
随机推荐
- 使用Android的OpenGL编写视频播放器
Android自身有MediaPlayer播放器,为什么还要使用OpenGL?因为使用OpenGL可以实现更多的效果,比如对视频翻转一定角度,加任意特效,多视频合并播放等,类似“激萌”的APP应该就是 ...
- YUV420图像旋转90算法的优化
在做android摄像头捕获时,发现从android摄像头出来的原始视是逆时针旋转了90度的,所以须要把它顺时针旋转90.android视频支持的是NV21格式,它是一种YUV420的格式.当然,始果 ...
- snapkit equalto和multipliedby方法
最近在使用snapkit过程中遇到一个问题,在github上搜索之后发现另外一个有趣的问题 frameImageContainer.snp.makeConstraints({ (make) in ma ...
- JavaWeb基础—Servlet
一.Servlet是什么 是服务器上运行的Java小应用程序,并被称为JavaWeb三大组件之一 通常我们把实现了Servlet的类,称之为Servlet Servlet作用主要是 1.接收请求数据 ...
- MacOS下netstat和lsof使用的若干问题
[-= 博客目录 =-] 1-相关说明 1.1-博客介绍 1.2-netstat和lsof 2-学习过程 2.1-netstat 2.2-lsof 2.3-netstat和lsof区别和关联 3-资料 ...
- 三层BP神经网络的python实现
这是一个非常漂亮的三层反向传播神经网络的python实现,下一步我准备试着将其修改为多层BP神经网络. 下面是运行演示函数的截图,你会发现预测的结果很惊人! 提示:运行演示函数的时候,可以尝试改变隐藏 ...
- Direct3D中 SetStreamSource 函数与数据流
Microsoft? DirectX? 8.0引入了数据流的概念,用来把数据绑定到着色器使用的输入寄存器.一个数据流是一个成员数据的数组,每个成员由一个或多个元素构成,这些元素代表单个实体,如位置.法 ...
- 16-[JavaScript]-ECMAScript 2
1.流程控制:if switch <!DOCTYPE html> <html> <head> <meta charset="UTF-8"& ...
- 2 CRM 讲师与学生,highcharts应用
一.讲师与学生简介 1 初始化 course_record,studyrecord, 2 考勤 3 录入成绩 4 显示成绩 ajax 查询 5 上传作业(os模块) 6 下载作业 二. 初始化 ,st ...
- POJ2079 Triangle
题面 题解 我什么时候会过这种东西???(逃 旋转卡壳板子题(听说这个算法有十六种读音??? 我是真的忘了这道题目怎么做了,挂个\(blog\),等我学会了再写题解 我的代码里居然有注释???好像还是 ...