20182317 2019-2020-1 《数据结构与面向对象程序设计》第七周学习总结

学号20182317 2019-2020-1 《数据结构与面向对象程序设计》第七周学习总结

教材学习内容总结

栈和队列

队尾指针是rear,队头是front,其中QueueSize为循环队列的最大长度
1.队空条件:rear == front
2.队满条件:(rear+1) %QueueSIze==front
3.计算队列长度:(rear-front+QueueSize)%QueueSize
4.入队:(rear+1)%QueueSize
5.出队:(front+1)%QueueSize

front=(front+1)%m

数据结构的栈长的是这个样子:

其实非常好理解,我们将栈可以看成一个箱子

  • 往箱子里面放东西叫做入栈
  • 往箱子里面取东西叫做出栈
  • 箱子的底部叫做栈底
  • 箱子的顶部叫做栈顶
  • 说到栈的特性,肯定会有一句经典的言语来概括:先进后出(LIFO, Last In First Out)

  • 往箱子里边放苹果,箱子底部的苹果想要拿出来,得先把箱子顶部的苹果取走才行

数据结构的队列长的是这个样子:

其实队列非常好理解,我们将队列可以看成小朋友排队

  • 队尾的小朋友到指定的地点了-->出队
  • 有新的小朋友加入了-->入队
  • 相对于栈而言,队列的特性是:先进先出

先排队的小朋友肯定能先打到饭!

队列也分成两种:

  • 静态队列(数组实现)
  • 动态队列(链表实现)

值得注意的是:往往实现静态队列,都是做成循环队列

循环队列的好处是可以完美的利用每一处内存,防止出现假溢出的情况.

如上图当循环队列中rear指针和front指针指在一起的时候就需要再判断一下队列中现在是不是已经满了,防止数据溢出.
___

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

  • 问题1:队列插入数的时候遇到假溢出的情况
  • 问题1解决方案: 在Throwable类中方法里面找到了每次出现异常的时候抛出的错误提醒和异常何处的问题。getMessage()[返回此 throwable 的详细消息字符串。]和getStackTrace()[提供编程访问由 printStackTrace() 输出的堆栈跟踪信息。]两个方法产生的。其中的Exception算是所有异常的父类,其下的所有子类都是每一个相对具体的异常。异常的规定也是按照一种编写类的方式,编写类中方法的方式进行构造的。

  • 问题2:可检测异常和不可检测异常---RuntimeException类
  • 问题2解决方案:Java中唯一的不可检测异常是RuntimeException类的对象或该类的后代对象。所有其他异常都是可检测的异常。对于可检测的异常是,发生异常的方法不捕获和处理该异常,则必须在该方法定义的声明头中包含throws子句。

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

  • 问题1:IO操作及异常处理
  • 问题1解决方案:刚听完IO的问题就要去编写IO的代码,感觉好恐怖。听的云里雾里的,尤其还有一堆的类去理解,用哪个不用哪个的问题,对应的writer和reader什么的,一堆一堆的,好在有老师给的代码可以参考。在老师的代码中有BufferedOutputStream和BufferedInputStream两种可供理解,两种字节流可以使用,进行往文件里面写入读出。
  • 问题2:类,对象,方法三者之间的关系搞不明白
  • 问题2解决方案:看到了网上一个很形象的回答

代码托管

(statistics.sh脚本的运行结果截图)
____

上周考试错题总结

上周无考试
____

结对及互评

评分标准

  • 基于评分标准,我给本博客打分:14分。得分情况如下:
  1. 正确使用Markdown语法(加1分):

    • 不使用Markdown不加分

    • 有语法错误的不加分(链接打不开,表格不对,列表不正确...)

    • 排版混乱的不加分

  2. 模板中的要素齐全(加1分)
    • 缺少“教材学习中的问题和解决过程”的不加分
    • 缺少“代码调试中的问题和解决过程”的不加分
    • 代码托管不能打开的不加分
    • 缺少“结对及互评”的不能打开的不加分
    • 缺少“上周考试错题总结”的不能加分
    • 缺少“进度条”的不能加分
    • 缺少“参考资料”的不能加分
  3. 教材学习中的问题和解决过程, 一个问题加1分

  4. 代码调试中的问题和解决过程, 一个问题加1分

  5. 本周有效代码超过300分行的(加2分)
    • 一周提交次数少于20次的不加分
  6. 其他加分:
    • 感想,体会不假大空的加1分
    • 排版精美的加一分
    • 进度条中记录学习时间与改进情况的加1分
    • 有动手写新代码的加1分
    • 课后选择题有验证的加1分
    • 代码Commit Message规范的加1分
    • 错题学习深入的加1分
    • 点评认真,能指出博客和代码中的问题的加1分
    • 结对学习情况真实可信的加1分

点评过的同学博客和代码

  • 本周结对学习情况
    • 20182318
    • 20182333
    • 结对学习内容
      • 如何在IDEA上将代码git到码云
      • 如何使用TDD测试代码
      • 对书上教材的讨论学习
  • 上周博客互评情况

本周主要学习了面向对象的内容,包括类的继承和方法的使用等内容

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 126/126 2/2 20/20
第二周 0/126 2/2 20/40
第三周 353/479 2/6 20/60
第四周 1760/2239 2/8 30/90
第五周 1366/3615 2/10 20/110
第六周 534/4149 2/12 20/130
2/12 20/150

参考资料

猜你喜欢

转载自www.cnblogs.com/pytznb/p/11787657.html