20172330 2018-2019-1 《程序设计与数据结构》第二周学习总结
Posted linanlalala
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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小时
改进情况:
这周对于课后练习做的没有那么吃力,但还是存在一些对于类的编写的问题,希望继续加油。
参考资料
以上是关于20172330 2018-2019-1 《程序设计与数据结构》第二周学习总结的主要内容,如果未能解决你的问题,请参考以下文章
20172330 2018-2019-1 《程序设计与数据结构》第二周学习总结
20172330 2018-2019-1 《程序设计与数据结构》第六周学习总结
20172330 2018-2019-1 《程序设计与数据结构》第八周学习总结
20172330 2018-2019-1 《程序设计与数据结构》第七周学习总结