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. CANOPEN开发问题

    我是一名研二的学生,现在教研室要开发canopen,我已经看了几个月了,在网上找了canopen的开源代码CANfestival,现在想做移植,有几个问题想要请教:1,开发主站,只买beckhoff的 ...

  2. 设计一个分布式RPC框架

    0 前言 提前先祝大家春节快乐!好了,先简单聊聊. 我从事的是大数据开发相关的工作,主要负责的是大数据计算这块的内容.最近Hive集群跑任务总是会出现Thrift连接HS2相关问题,研究了解了下内部原 ...

  3. React-Native使用极光进行消息推送

    推送作为APP几乎必备的功能,不论是什么产品都免不了需要消息推送功能,一般做RN开发的可能都是前端出身(比如我),关于android ios 都不是很懂

  4. PHP切割字符用到的explode 以及计数count

    在thinkphp中同样可以用 explode来进行字符的切割工作,比如 $jihe='1,2,3,4'; 在使用explode之后,可以获得一个数组: $array=explode(',',$jih ...

  5. Hadoop(1)-CentOS6.8的安装,配置和克隆

    准备工作 150G及以上的硬盘空间(因为要搭建3个系统组成的集群),cpu尽量i7-7xxx标压以上,内存16G及以上 自行搜索,下载,安装VMWare 准备CentOS6.8的镜像文件 注意:安装虚 ...

  6. pandas对excel处理过程中的总结

    在处理excel数据时需要将一组具有相同标签值的数据给按标签抽取出来,同样的标签值对应着同一个类别,这项操作让我对pandas的聚合功能有了更深刻的认识. 所谓聚合groupby,实际上是指将向量或者 ...

  7. python-redis列表模式

    往列表里存放数据先进后出(左进) lpush  names  A  B C D E 往列表里存放数据后进先出(右进) rpush names  G P H K 查看列表里面的数据: lrange na ...

  8. net辅助工具列表

    最近对.net的辅助工具比较感兴趣,网上也已经有.net的十个必备工具的帖子了,这里提供了一份全面的工具列表: Code generation NVelocity CodeSmith X-Code . ...

  9. vue-cli打包后,图片路径不对

    在config文件夹下的 index.js 里面,查找build,在builid方法里面,添加一行:assetsPublicPath: './' 例: 在build文件夹下的utils.js里面,查找 ...

  10. 【python3】爬取鼠绘汉化的海贼王漫画

    特别说明: 因为早些时候鼠绘的接口调整,之前的代码已经不能用了. 正好最近在学习scrapy,于是重新写了一个,项目放在github  https://github.com/TurboWay/ishu ...