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

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

教材学习内容总结

  • 集合能隐藏某些细节。
    • 线性集合和非线性集合
  • 抽象数据类型(ADT)
    集合是一种隐藏了实现细节的抽象。
  • Java集合API(Application Programming Interface)
  • 栈 (后进先出)
    例如:批改作业,进出电梯。
    本性:所有的操作都是在一端进行。 一端指的是顶端,所以栈不适用解决需要访问集合中间或底部的元素的问题。
  • 使用栈计算后缀表达式
    注意:当遇到一个操作符时,计算规则应可以检索其之前的两个操作数。第一个弹出的操作数其实是表达式的第二个操作数,而第二个弹出的操作数则是表达式的第一个操作。对于除法和减法需要特别注意。

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

  • 问题1:UML类图符号箭头含义。
  • 问题1解决方案:这个在上学期探究过,但是并没有记住,故还是要重新加深一遍记忆,方便后来的学习。
    • 1.类(Class):使用三层矩形框表示。 第一层显示类的名称,如果是抽象类,则就用斜体显示。 第二层是字段和属性。 第三层是类的方法。 注意前面的符号,‘+’表示public,‘-’表示private,‘#’表示protected。
    • 2.接口:使用两层矩形框表示,与类图的区别主要是顶端有< >显示 。 第一行是接口名称。 第二行是接口方法。
    • 3.继承类(extends) :用空心三角形+实线来表示。
    • 4.实现接口(implements) :用空心三角形+虚线来表示
    • 5.关联(Association) :用实线箭头来表示,例如:燕子与气候
    • 6.聚合(Aggregation) :用空心的菱形+实线箭头来表示 聚合:表示一种弱的‘拥有’关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分,例如: 公司和员工
    • 7.组合(Composition):用实心的菱形+实线箭头来表示 组合:部分和整体的关系,并且生命周期是相同的。例如:人与手
    • 8.依赖(Dependency) :用虚线箭头来表示,例如:动物与氧气
  • 问题2:书P36 设计要点 提到

    取消操作通常是使用一种名为drop - out的栈来实现的。
    与一般栈不同的是

  • 问题2解决方案:
  • ...

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

  • 问题1:头指针和头结点
  • 问题1解决方案:
    • 头指针是指指向开始结点的指针(没有头结点的情况下)。一个单链表可以由其头指针唯一确定,一般用其头指针来命名单链表。
    • 头结点是在链表的开始结点之前附加的一个结点。有了头结点之后头指针指向头结点,不论链表是否为空,头指针总是非空,而且头结点的设置使得对链表的第一个位置上的操作与在表中其它位置上的操作一致。
    • 头结点可以没有,但是头指针不能没有,不然无法访问链表的元素;
    • 头结点需要分配内存给它,而头指针不需要。
  • 问题2:AS中组件不显示问题。提示错误: failed to load AppCompat ActionBar with unkNown error

  • 问题2解决方案:
    • 在AndroidManifest.xml文件中找到全局样式文件 Theme,按住Ctrl+鼠标点进去

    • 进入到这个文件,在前面增加 “Base”

  • 问题3:AS报错
    This view is not constrained, it only has designtime positions, so it will jump to (0,0) unless you

  • 问题3解决方案:
    • 点击“魔法棒”。

代码托管

上周考试错题总结

  • If the algorithm is inefficient, a faster processor will help. B
    A .True
    B .Flase
  • 解析:如果算法效率低下,一个更快的处理器将有所帮助。肯定有所帮助啊,但是帮助的这个尺度很难把握。

结对及互评

点评过的同学博客和代码

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

学习进度条

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

参考资料

猜你喜欢

转载自www.cnblogs.com/gk0625/p/9671816.html
今日推荐