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:无法正常git add,git commit,文件名显示黑色,但码云上并没有上传成功
  • 问题1解决方案:王老师耐心帮我查找问题,点击 VCS - Refresh File Status后便恢复正常

代码托管

上周考试错题总结


  • 还未公布答案和解析

本周结对学习情况


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


  • 五篇博客真的是要写到吐血,加上还有校运会训练,出礼仪,举办老乡会等活动,以至于熬了这学期以来的第一个通宵。。。

学习进度条


代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 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小时

  • 改进情况:多思考,多尝试

参考资料


20162325 金立清 S2 W5 C14的更多相关文章

  1. 20162325 金立清 S2 W9 C18

    20162325 2017-2018-2 <程序设计与数据结构>第9周学习总结 教材学习内容概要 堆是一棵完全二叉树,其中每个元素大于等于其所有子结点的值. 向堆中添加一个元素的方法是,首 ...

  2. 20162325 金立清 S2 W7 C16

    20162325 2017-2018-2 <程序设计与数据结构>第7周学习总结 教材学习内容概要 树是非线性结构,其元素组织为一个层次结构 树的度表示树种任意结点的最大子结点数 有m个元素 ...

  3. 20162325 金立清 S2 W3 C13

    20162325 2017-2018-2 <程序设计与数据结构>第3周学习总结 教材学习内容概要 查找是在一组项内找到指定目标或是确定目标不存在的过程 高效的查找使得比较的次数最少 Com ...

  4. 20162325 金立清 S2 W11 C20

    20162325 2017-2018-2 <程序设计与数据结构>第11周学习总结 教材关键概念摘要 在哈希方法中,元素保存在哈希表中,其在表中的位置由哈希函数确定. 两个元素或关键字映射到 ...

  5. 20162325 金立清 S2 W10 C19

    20162325 2017-2018-2 <程序设计与数据结构>第10周学习总结 认识 线性表和树两类数据结构,线性表中的元素是"一对一"的关系,树中的元素是" ...

  6. 20162325 金立清 S2 W6 C15

    20162325 2017-2018-2 <程序设计与数据结构>第6周学习总结 教材学习内容概要 队列是先进先出(FIFO)的集合 队列是保存重复编码k值的一种有效结构 实现模拟时常用队列 ...

  7. 20162325 金立清 S2 W8 C17

    20162325 2017-2018-2 <程序设计与数据结构>第8周学习总结 教材学习内容概要 二叉查找树是一棵二叉树,对于其中的每个结点,左子树上的元素小于父结点的值,而右子树上的元素 ...

  8. 20162325金立清 实验四 Android程序设计 实验报告

    实验四 Android程序设计 实验报告 代码托管地址 码云链接 实验内容 安装使用Android Stuidio Activity测试 UI测试 布局测试 事件处理测试 Android程序设计-1 ...

  9. 2017-2018 第一学期201623班《程序设计与数据结构》-第5&6周作业问题总结

    一.作业内容 第5周作业 http://www.cnblogs.com/rocedu/p/7484252.html#WEEK05 第6周作业 http://www.cnblogs.com/rocedu ...

随机推荐

  1. http协议中的keeplive是做什么的?它的适应场景是什么?

    1.Http底层也是通过TCP传输的. 2.HTTP keep-alive Http是一个”请求-响应”协议,它的keep-alive主要是为了让多个http请求共享一个Tcp连接,以避免每个Http ...

  2. ACP敏捷管理

  3. oracle错误分析:ora-04063:view view_test has errors

    百度了一下,有一个大佬是这样说的: 在PL/SQL中查询数据库视图时总是报告“ora-04063:view view_test has errors”的错误: Oracle视图非常强大的功能之一在于其 ...

  4. #leetcode刷题之路39-组合总和

    给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合.candidates 中的数字可以无限制重复被选取 ...

  5. 在线预览word

    # eg http://view.officeapps.live.com/op/view.aspx?src=<Document Location>    #demo    <a hr ...

  6. PHP/Laravel轻松上传超大文件

    我们知道,在以前,文件上传采用的是直接传整个文件的方式,这种方式对付一些小文件是没有问题的.而当需要上传大文件时,此种方式不仅操作繁琐,需要修改web服务器和后端语言的配置,而且会大量占用服务器的内存 ...

  7. Diy智能家居-1.基于esp8266的语音控制系统(开篇)

    目录Diy智能家居-1.基于esp8266的语音控制系统(开篇) https://blog.csdn.net/arno1988/article/details/82628589 Diy智能家居-2.基 ...

  8. android6.0系统Healthd分析及低电量自动关机流程

    系统平台:android6.0概述Healthd是android4.4之后提出来的一种中介模型,该模型向下监听来自底层的电池事件,向上传递电池数据信息给Framework层的BatteryServic ...

  9. Catalan&Stirling数

    Catalan&Stirling数 Tags:数学 作业部落 评论地址 Catalan数 \(1,1,2,5,14,42,132,429,1430,4862,16796,58786...\) ...

  10. 微信小程序:实现日历功能

    一.功能描述 实现日历功能 二. 代码实现 1. index.wxml <view class='wrap'> <view> <view class='date-show ...