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

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

教材学习内容总结

集合

  • 1.集合是一种对象,类似于保存其他对象的存储库
    集合中的元素通常是按照他们添加到集合的顺序,或者是按元素之间的某种内在联系来组织的。
  • 2、抽象数据类型(ADT)是由数据和在该数据上所实施的具体操作构成的集合。
  • 3、栈是一种线性集合,元素按后进先出(LIFO)的方法进行处理,有push,pop,peek,isempty,size等常用操作
  • 4、栈是用于计算后缀表达式的理想数据结构
  • 5、Java接口定义了一个抽象方法集,有助于把抽象数据类型的概念与其实现分割开来。

链式结构---栈

  • 1.链式结构是基于数组的集合实现的主要代替方案,链表是一种链式结构,自引用式构成了链表的基础,在链表中存储的对象通常泛称为结点node
  • 2、链表会按需动态增长,因此本质上,它没有容量限制
  • 3、只要有效地实现了恰当的操作,集合的任何实现都可用来求解问题。
  • 4、双向链表需要维护两个引用:首结点和末结点
  • 5、LinkedStack类实现了StackADT类接口,LinearNode类用作结点类用于指向下一结点和指向本结点中存储的元素
  • 6、存储在集合中的对象不应该含有基本数据结构的任何实现细节。

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

  • 问题1:LinkedStack类与ArrayStack类的对比。
  • 问题1解决方案:百度后知道了两者不同的使用方法。
    stack的实现分为两种,一种是使用数组来模拟栈,另外一种是使用链表来模拟栈,ArrayStack使用数组来实现,LinkedStack使用链表来实现。
  • 《数据结构:栈》

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

  • 问题1:ArrayStack类核心方法的实现(用数组实现栈)
  • 问题1解决方案:
    压栈方法push
public void push (T element){
     if(count == stack.length)
         expandCapacity();
     stack[count] = element;
     count ++;
  }
private void expandCapacity(){
     T[]larger = (T[])(new Object[stack.length*2]);
     for(int index=0;index<stack.length;index++)
         larger[index] = stack[index];
     stack = larger;
}

出栈方法pop()

public T pop() throws Exception
    {
        if (count==0)
            throw new Exception("PopExpection");
        else
        count--;
        T math = stack[count];
        stack[count] = null;
        return math;
    }

peek()方法

public T peek() throws Exception
    {
        if (count==0)
            throw new Exception("PeekExpection");
        else
        return stack[count-1];
    }

代码托管

上周考试错题总结

  • Which Growth function has the highest order?
    A .O(n log n)
    B .O(n2)
    C .O(2n)
    D .O(log n)
    哪个生长函数的阶数最高?
    正确答案应该是c,当时看错了选成b。
  • Software systems need only to work to support the work of developers, maintainers, and users.
    A .True
    B .Flase
    正确答案应该是错误,软件系统不仅仅只需要支持开发人员、维护人员和用户的工作。
  • 结对及互评

  • 博客中值得学习的或问题:
    • 图片和文字相结合,方便理解。
    • 增加了博客中的目录,方便查看,同时样式进行了更新,显得更加美观
    • 阅读了许多资料,使得博客更有说服力。
  • 代码中值得学习的或问题:
    • 在做实验二时他采用了较为简便的方法,并对不理解的地方有了自己的尝试。
    • commit依旧很详细,有条理性。

点评过的同学博客和代码

  • 本周结对学习情况

    • 20172333
    • 结对学习内容
      • 对于课后项目的编写。

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

这周相较于上周的课后习题有所简单,但还是应该花费很多时间去课本,只有把课本知识搞懂,才能更好的去做项目。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 0/0 1/1 10/10
第二周 312/414 2/4 20/45

参考:软件工程软件的估计为什么这么难软件工程 估计方法

  • 计划学习时间:10小时
  • 实际学习时间:10小时
  • 改进情况:

这周对于课后练习做的没有那么吃力,但还是存在一些对于类的编写的问题,希望继续加油。

参考资料

原文地址:https://www.cnblogs.com/linanlalala/p/9671182.html

时间: 2024-11-06 14:12:35

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

20172330 2017-2018-1 《Java程序设计》第五周学习总结

20172330 2017-2018-1 <Java程序设计>第五周学习总结 教材学习内容总结 第五章 首先是对各种各种运算符的了解:刚开始以为相等就是=,还有其他一些符号都挺简单的,然后在进一步学习知道了"=="与"!="都是相等型运算符,而"!","&&","||"则分别代表非,与,或. 教材学习中的问题和解决过程 其次是if语句: 1.if语句由保留字if.紧随其后的布尔表

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

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

20172304 <程序设计与数据结构>第二周学习总结 教材学习内容总结 本周主要学习了第三章和第四章的内容 第三章 集合概述--栈 3.1集合 集合是一种聚集组织了其他对象的对象. 集合可以分为两大类线性集合和非线性集合 线性集合:其元素按直线方式组织的集合. 非线性集合:其元素按某种非直线方式组织的集合.例如按层次结构或按网状结构. 3.1.1抽象数据类型 集合十一找给你隐藏了实现细节的抽象 数据类型:一组值及作用于这些数值上的各种操作. 抽象数据:类型(Absttract Data Ty

20172319 2018.03.27-04.05 《Java程序设计》第4周学习总结

20172319 2018.03.27-04.05 <Java程序设计>第4周学习总结 教材学习内容总结 第四章 编写类 类与对象的回顾:对象是有状态的,状态由对象的属性值确定.属性由类中的声明的变量所定义.对象的操作可能改变该对象的状态.对象的操作由 类中声明的方法定义. 类的分析:类的成员(类的数据和方法):构造方法(给类赋初值):实例数据(变量声明的位置定义其作用域):UML类图(类及其对象关系可视化描述). 封装:(1) 可见性修饰符:public(公有):private(私有,只能从