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. RabbitMQ如何保证发送端消息的可靠投递

    消息发布者向RabbitMQ进行消息投递时默认情况下是不返回发布者该条消息在broker中的状态的,也就是说发布者不知道这条消息是否真的抵达RabbitMQ的broker之上,也因此会发生消息丢失的情 ...

  2. Blktrace原理简介及使用

    Blktrace简介 Blktrace是一个用户态的工具,用来收集磁盘IO信息中当IO进行到块设备层(block层,所以叫blk trace)时的详细信息(如IO请求提交,入队,合并,完成等等一些列的 ...

  3. jQuery----each()方法

    jquery中有隐式迭代,不需要我们再次对某些元素进行操作.但是如果涉及到不同元素有不同操作,需要进行each遍历.本文利用10个li设置不同的透明度的案例,对each方法进行说明. 语法: $(元素 ...

  4. 使用canvas通过js制作一个小型英雄抓怪兽的2D小游戏

    首先,这是一个HTML: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...

  5. swoft orm中的坑(针对实体类的属性名称和数据库字段不相等)

    最近在用swoft的orm,发现了一些问题: 首先看下实体类的定义 它的属性名称和所映射的数据库字段名不一致,这个就会导致蛋疼的问题,首先,在我们使用orm的时候,应该使用哪个字段? 我直接说结论,在 ...

  6. Verilog中使用'include实现参数化设计

    前段时间在FPGA上用Verilog写了一个多端口以太网的数据分发模块,因为每个网口需要独立的MAC地址和IP地址,为了便于后期修改,在设计中使用parameter来定义这些地址和数据总线的位宽等常量 ...

  7. VIM - visual selection 模式下的简单操作

    1. 概述 vim 的 visual selection 模式下的简单操作 2. visual selection 模式 概述 可视化选择 可视化选择 vim 的一种专门用来选择的模式 可以提供相对于 ...

  8. elastic-job+zookeeper实现分布式定时任务调度的使用(springboot版本)

    总体思路,要确认一个定时任务需要一个cron表达式+jobDetail: 现在要让实现定时任务的协调,则就让zookeeper,简单说就是需要3要素,zk对象+cron+jobDetail: 总的项目 ...

  9. 9-[CSS]-字体、文本、背景图片

    1.字体相关CSS属性介绍 p{ width: 300px; height: 60px; /* 等价于 font-size: 14px; line-height: 30px; font-family: ...

  10. CF 1117 E. Decypher the String

    E. Decypher the String 链接 题意: 有一个字符串,一些操作,每次操作交换两个位置的字符,经过这些操作后,会得到新的字符串.给你新的字符串,求原来的串.可以有3次询问,每次询问给 ...