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

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

教材学习内容总结

集合

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

链式结构---栈

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

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

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

  • 《数据结构:栈》node

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

  • 问题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
    正确答案应该是错误,软件系统不单单只须要支持开发人员、维护人员和用户的工做。学习

  • 结对及互评

  • 基于评分标准,我给严域俊的博客打分:7分。得分状况以下:测试

正确使用Markdown语法(加1分).net

模板中的要素齐全(加1分)设计

教材学习中的问题和解决过程, (加3分)调试

感想,体会真切的(加1分)

点评认真,能指出博客和代码中的问题的(加1分)

  • 博客中值得学习的或问题:
    • 图片和文字相结合,方便理解。
    • 增长了博客中的目录,方便查看,同时样式进行了更新,显得更加美观
    • 阅读了许多资料,使得博客更有说服力。
  • 代码中值得学习的或问题:
    - commit依旧很详细,有条理性。

点评过的同窗博客和代码

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

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

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

学习进度条

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

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

  • 计划学习时间:10小时

  • 实际学习时间:10小时

  • 改进状况:

上一周因为课后没有仔细阅读课本,致使测试的时候不少知识点都遗忘,这一次课后花了大量时间去阅读课本,仍是颇有收获的。

参考资料

相关文章
相关标签/搜索