20172304 《程序设计与数据结构》 第二周学习总结

20172304 《程序设计与数据结构》第二周学习总结

教材学习内容总结

本周主要学习了第三章和第四章的内容

第三章 集合概述——栈

3.1集合

集合是一种聚集组织了其他对象的对象。

集合可以分为两大类线性集合和非线性集合

线性集合:其元素按直线方式组织的集合。

非线性集合:其元素按某种非直线方式组织的集合。例如按层次结构或按网状结构。

3.1.1抽象数据类型

集合十一找给你隐藏了实现细节的抽象

数据类型:一组值及作用于这些数值上的各种操作。

抽象数据:类型(Absttract Data Type, ADT)是一种在程序设计语言中尚未定义气质和操作的数据类型。

数据结构:一种用于实现集合的编程结构集。

3.1.2

java集合API:java程序设计原因一个支持软件开发的庞大类库中的一部分。

3.2 栈集合

栈是一种线性集合,其元素的添加和删除都是在同一端进行的,我们称栈是后进先出。

操作 描述
push 添加一个元素到栈的顶部
pop 从栈的定不溢出一个元素
peek 查看栈顶部的元素
isempty 确定栈是否为空
size 确定栈的元素数目

3.3 主要的面向对象的概念

为了实现良好的重用性,我们就必须考虑到类型兼容性和类型检查

3.3.1继承与多态性

多态引用是一个引用变量,他可以在不同的地点引用不同类型的对象。继承可用于创建一个类层次,其中,一个引用变可用于指向与之相关的任意对象。

3.3.2 泛型

java语言允许用户基于泛型来定义类。我们可以定义一个类,一边他能储存、操作和管理其他对象。

3.4 使用栈计算后缀表达式

中缀表达式是正常运算式,而中缀表达式则是根据运算顺序将中缀表达式的运算符置后。后缀表达式不中缀表达式利于计算,所以程序设计语言编译器和运算式环境在其内部计算中往往使用后缀表达式。使用栈计算后缀表达式的算法秒数如下:从左到右扫描表达式,一次表示出每个符号(操作符huo9操作数)。如梭是操作数,则把它压入栈中。如果是操作非,则从栈中弹出两个元素,并把该操作符因公在这两个元素之上,当到 大表达式的末尾是,栈中所剩余的元素就是该表达式的计算结果。

3.4.1 javadoc

Javadoc是一种注释风格以/**开始,以*/结束。

3.5 异常

异常是一种对象,它定义了一种非正常或错误的情况。异常由程序或运行时环境抛出,可以按预期的被捕获或被正确处理。

3.6 栈ADT

为栈集合定义了一个Java接口

3.7 用数组实现栈

3.7.1 管理容量

数组中的单元数量 称为该数组的容量。

应当在数组容量已满时,重新定义一个数组扩大容量,并将原数组的数据复制到新数组中。

3.8ArrayStack类

介绍了用数组实现栈,以及各种栈的方法的实现。

第四章 链式结构——栈

4.1 链接作为引用

链式结构是一种数据结构,它使用对象引用变量来创建对象之间的链接。指向对象的变量叫做指针。在链表中储存的对象通常泛称为该链表的节点。

4.2 管理链表

4.2.1 访问元素

需要新创建一个引用变量来替代头指针,因为 如果用头指针直接引用,会丢失数据。

4.2.2插入节点

使前一个节点的next指向新的节点,使新的节点的引用指向下一个节点。

4.2.3 删除节点

使上一个节点的引用指向下一个节点的引用

4.5使用栈来穿越迷宫

模拟递归

教材学习中的问题和解决过程

  • 问题1:引入异常的意义
  • 问题1解决方案:教材中写道,有时出现错误时可以选择抛出异常,但我并不知道这么做的意义何在。后来在网上查阅了一些资料。java引入异常机制,是为了提高系统的健壮性,因为异常会被抛出,但是还可以被捕获处理。这样可以一定程度上提高系统的健壮性,避免发生未知名错误。而且程序员也可以预先设置try-catch语句,来捕获一些医疗之中的异常。

代码调试中的问题和解决过程

  • 问题1:在进行作业3.9的时候,出现了问题,入栈时只要更改元素,显示框内的所有元素都会改变,还有无法出栈。

  • 问题1解决方案:结果发现是在getText后面应该在加一个.toString。以及少了一行代码:top--;

代码托管

上周考试错题总结

  • 错题一
  • 原因:因为看错了,没什么好解释的,栈本来就可以储存数据的顺序。

  • 错题二
  • 原因:误将2?看成2n,这是一个意外。

    点评模板:

  • 博客中值得学习的或问题:
    • 20172328 李馨雨

      李馨雨同学还是一如既往的认真教材知识总结配上图片,不仅更加一目了然,而且还增加了阅读的趣味。可能是我对知识理解的还不透彻,并不能很有针对性的提出问题,不想李馨雨同学,能将排序法分析的鞭辟入里,头头是道,佩服佩服,今后还要想 李馨雨同学学习,多多学习她的代码博客。

点评过的同学博客和代码

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

本周又是充实的一周,在新的学习生活中有重新温习了一些旧的知识。温故而知新可以为师矣。这是一条必将伴随我终生的箴言(既然已经选择了程序员这条苦B的道路)。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 30/30 1/1 10/10
第二周 766/796 1/2 40/50

参考资料

1.java为什么要引入异常出来机制

2.蓝墨云班课

3.java软件结构与数据结构

原文地址:https://www.cnblogs.com/15248252144dzx/p/9634561.html

时间: 2024-12-14 18:59:17

20172304 《程序设计与数据结构》 第二周学习总结的相关文章

201671010117 2016-2017-2 《Java程序设计》Java第二周学习心得

Java第二周学习心得 这一周老师在周四进行了课堂测验,完全出乎我的意料,我以为老师会在前两周上课讲一下,由于我在课前没有好好准备,反转课堂来的有的措手不及,那些题很多很多都不会,也错了很多,班上有很多表现很好的同学,他们课前准备充分,在课堂上完全没有任何压力,我也意识到了我课前没有花大量时间看书的严重性,所以我下课便去看第三章了,以后也一定要好好看书,找出不懂得问题,课上也要认真向其他优秀同学学习,不懂的问题也要想办法解决. 今天写了PPT上的任务1-9,着实也遇到了很多不会的问题,像是最后的

201777010217-金云馨《面向对象程序设计(Java)》第二周学习总结

项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p/11475377.html 作业学习目标 学习并掌握Java Application程序结构: 学习并掌握Java语言的数据类型与变量: 学会使用Java运算符构造各类表达式: 掌握Java Application输入输出技术: 掌握Java流程控制技术(分支.循环): 掌握Math类.Strin

201771010123汪慧和《面向对象程序设计Java》第二周学习总结

一.理论知识部分 1.标识符由字母.下划线.美元符号和数字组成, 且第一个符号不能为数字.标识符可用作: 类名.变量名.方法名.数组名.文件名等.第二部分:理论知识学习部分 2.关键字就是Java语言中已经被赋予特定意义 的一些单词. ?常见有:class.public.try.catch.if. float.import.void等. 关键字不做变量名. 3.Java有三种注释的方式:   // 注释内容由//一直到此行结束. /*和*/ 定义一个注释块.  /**开始,*/结束 这种注释方法

20172322 2017-2018-2 《程序设计与数据结构》第二周学习总结

20172322 2017-2018-2 <程序设计与数据结构>第二周学习总结 教材学习内容总结 了解了print与println的区别 了解了字符串的拼接可以用+来完成 了解了转义字符的使用 学会了使用赋值 学会使用部分算术运算符 学会了使用Scanner来实现交互性 教材学习中的问题和解决过程 问题1:在最初接触赋值时对foalt和double的赋值范围不了解 问题1解决方案:使用万能的度娘后看到一个高赞答案后有了了解 问题2:在提前预习时看到2.7图形后敲入的代码无法执行 问题2解决方案

20172328《程序设计与数据结构》第二周学习总结

20172328李馨雨<程序设计与数据结构>第二周学习总结 又到周五,李馨雨同学要开始写博客了.让我们开始吧!(????) 教材学习内容总结 1.首先是String类定义的字符串,然后是print和println的区别.转义字符的学习.(让我印象深刻的\b[回车符]在字符串结尾不显示哈哈,及其更新的\t[换行符],还有在课堂上真正明白了什么是回车.) 2.了解变量.常量.赋值语句.变量:保存数据的内存单元.常量:坚定自己不会变的数据!除非你用java的反射(有点复杂,改权限.去修饰符等等.没实

20172327 2017-2018-2 《程序设计与数据结构》第二周学习总结

20172327 2017-2018-2 <程序设计与数据结构>第二周学习总结 教材学习内容总结 字符串的拼接和转义序列的使用 变量的声明和使用 讨论语法及表达式的处理 定义数据转换类型和实现类型转换的机制 创建Scanner类 教材学习中的问题和解决问题 暂无 代码学习中的问题和解决过程 问题1:在提交过程中,突然遇到无法上传的情况 问题2解决方案:通过上网查找,输入git pull之后弹出一个编辑框,选择关闭之后,再次用git push就成功了. 问题2:在按照例题2.10打代码时,Jav

20172330 2018-2019-1 《程序设计与数据结构》第二周学习总结

20172330 2018-2019-1 <程序设计与数据结构>第二周学习总结 教材学习内容总结 集合 1.集合是一种对象,类似于保存其他对象的存储库 集合中的元素通常是按照他们添加到集合的顺序,或者是按元素之间的某种内在联系来组织的. 2.抽象数据类型(ADT)是由数据和在该数据上所实施的具体操作构成的集合. 3.栈是一种线性集合,元素按后进先出(LIFO)的方法进行处理,有push,pop,peek,isempty,size等常用操作 4.栈是用于计算后缀表达式的理想数据结构 5.Java

《面向对象程序设计(java)》第二周学习总结

<面向对象程序设计(java)>第二周学习总结 王颖奇 201771010129 第一部分:实验目的与要求 ①理论部分目的与要求 (1)3.1基本知识(2)3.2数据类型(3)3.3变量(4)3.4运算符(5)3.5类型转换 (6)3.6字符类型(7)3.7输入输出(8)3.8控制流程(9)3.9大数值(10)3.10数组 ②实验部分目的与要求 (1)进一步熟悉命令行和IDE两种方式下java程序开发的基本步骤: (2)掌握Eclipse集成开发环境下导入Java源程序的过程: (3)掌握Ja

王之泰201771010131《面向对象程序设计(java)》第二周学习总结

王之泰201771010131<面向对象程序设计(java)>第二周学习总结 第一部分:理论知识学习部分 第三章 第三章内容主要为Java语言的基础语法,主要内容如下 1.基础知识 1.1标识符 a)标识符可用作类名.变量名.方法名.数组名.文件名等. 注:第一个符号不能为数字,即不能用数字开头. 1.2关键字 a)关键字是Java语言中已经被赋予特定意义的一些单词. b)常见有:class.public.try.catch.if. float.import.void等. 注:关键字不做变量名