第三章学习小结

一、内容小结

第三章主要学习了栈和队列,内容和之前学的有些相似。

1、栈(LIFO)只能在栈顶进行插入和删除;队列(FIFO)在队头删除,队尾插入。

解决栈的top问题时,要注意看初始化时top=0或是top=-1,来决定入栈时是top++还是++top;以及出栈时是--top还是top--。

2、入栈先需要判断是否栈满,出栈前需要判断是否栈空;

链栈入栈前并不需要判断是否栈满,只需为入栈元素new一个结点空间,出栈前需要判断是否栈空;

 

 

队列入队先需要判断是否队满,出队前需要判断是否队空;

而链队入队前并不需要判断是否队满,出队前需要判断是否队空,且需要释放空间。

3、注意循环队列各个操作的判断条件与肺循环队列的差别:

 

 

 

 

4、用递归来解决问题

1)自底向上的求解方法:由最小规模问题逐步向上求解,直至求出原问题的解。(迭代)

2)自顶向下的求解方法:从原问题出发,分解出规模减小了的子问题,直至终止条件,
然后由终止条件的结果进行回推,求出原问题的值。(递归,只需要关注本层逻辑)

但递归求解,一定要注意是否会出现重复子问题的情况。

5、来时接触STL标准模板库,需要看清楚方法的形参返回值及其作用。直接调用STL的话,就能省一写函数的时间,也能避免自己写错,还能让代码简洁。

二、学习心得

学得比较困难的部分应该就是递归了,做题的时候不太能找到切入点,后来了解了自顶向下和自底向下两种思路后,稍稍好理解了一些,不够还是得看相关题型来强化巩固递归思维。

可能是关于这一章节的码打得比较少,做PTA时感觉有点卡卡,不是很顺,看来还是得多打码才行。

还有,感觉小组讨论越来越顺利了,会议讨论确实方便了许多,一起加油吧。

三、目标

1)学好第四章

2)学会优化自己的代码

posted @ 2020-04-25 02:00  杨璇  阅读(165)  评论(0)    收藏  举报