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

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

教材学习内容总结

栈与链表:

栈的概念、特点、应用:

栈的概念:

栈可以定义为只允许在表的末端进行插入和删除的线性表。允许插入和删除的一端被称为栈顶,而另一端则被称为栈底。当栈中没有任何元素时,被称为空栈。

e.g:假设有栈S={a1,a2,a3,…,an},那么最后加入栈中的元素an被称为栈顶。进栈按照顺序a1,a2,…,an,出栈则按照an,an-1,…a1。若an-1需要出栈,则必须先将an出栈.

栈的特点:

先进后出

e.g:
作业本的叠放、水杯杯口的取放

顺序栈示意图:

链式栈示意图:

顺序栈与链式栈的比较:

顺序栈使用一组地址连续的存储单元依次从栈底到栈顶的元素,物理位置和逻辑位置关系一致,访问时间为O(1),压栈和出栈的时间消耗均为O(1)。但是需要预先分配存储空间,故可能存在扩容的问题,扩容时数组的移动会造成O(n)的性能消耗

链式栈是动态分配存储空间,不存在扩容问题,压栈和出栈的时间消耗为O(1),所以推荐使用链式栈来实现栈功能

栈的应用:

十进制转N进制、行编辑器、校验括号是否匹配、中缀表达式转后缀表达式、表达式求值等

链表:

链表概念:

链表是一种最为简单的数据结构,它的主要目的是依靠引用关系来实现多个数据的保存,那么下面假设现在要保存的数据是字符串(引用类型),则可以按照图所示的关系进行保存。

上周考试错题总结

上周莫得考试

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

1、泛型和Object的区别?:

- 泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。

- Object是所有类的积累,范围更广,泛型T在使用的的时候就会具体到某一种类型

- Object定义的类型在使用过程中需要强转,这就需要我们预先知道是什么类型,编译器不会检查Object类型的强转错误,只有在运行时才会抛出;泛型T的类型在编译期间就会进行检测,它的类型转换是自动的,隐式进行的

2、Stack双括号

  • 解决过程:我认为双括号的问题大概在于当进行PUSH操作时将整个数组PUSH而不是将其内部的值进行PUSH
  • 解决方案:使用循环将数组进行分开赋值。

代码托管

代码托管

结对及互评

点评

  • 博客中值得学习的:
    • 教材学习内容概括行强,简介明了。
    • 有自己动手打新代码,加入了很多个人的理解。
    • 内容很充实,很用心,比上次进步了很多。
    • 博客格式正确,运用了很多不同的方法,排版精美。
    • 希望能在课本内容总结以及问题&解决过程中加入自己的思考,使博客内容更加充实。
      基于评分标准,我给本博客打分12分:
      得分情况如下:
      正确使用Markdown语法(加1分)
      模板中的要素齐全(加1分)
      教材学习中的问题和解决过程(加2分)
      代码调试中的问题和解决过程(加2分)
      其他加分(加6分)
      进度条中记录学习时间与改进情况(1)
      感想,体会不假大空(1)
      有动手写新代码(1)
      错题学习深入(1)
      点评认真,能指出博客和代码中的问题(1)
      结对学习情况真实可信(1)

点评过的同学博客和代码

  • 本周结对学习情况:

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

单步调试真香啊

参考资料

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 10000行 30篇 400小时
第一周 138/138 2/2 23/23 减少了鼠标的使用次数
第二周 749/887 1/4 25/48
第三周 765/1652 1/4 25/48
第四周 694/2346 1/6 20/87
第五周 1659/4005 1/8 21/105
第六周 531/4536 1/9 23/128
第七周 1523/6059 1/10 38/166
posted on 2019-11-03 20:10  Mr.Stark丿  阅读(98)  评论(0编辑  收藏  举报