栈与队列
一、本章内容小结:第三章主要学习了两种数据结构——栈和队列,它们是操作受限的线性表。栈只能在栈顶进行插入和删除,因此先进后出;而队列则是在队头删除,队尾插入,先进先出,因此需要根据题目来选取应用哪种数据结构。后面还通过栈来处理递归问题,并分析递归方法的效率与时间复杂度,最后通过学习三个经典案例(括号匹配,十进制转化,舞伴匹配)来熟悉对栈和队列的应用。
二、完成作业和实践的心得体会:
1、在本次小组合作作业中,发现自己的基础还不够扎实,需要重新复习上学期的内容;
2、对递归问题的求解有点没有思路,没能很快把问题简单化,在递归过程中跳出本层逻辑也会有点懵,需要加强;
3、用STL打代码比较方便,以后可以尝试。
三、易错点小结:
1、栈:若采用链式结构存储时,以链表的头部为栈顶最方便,并且不需要设头结点。
2、队列:若采用顺序结构存储时,操作队列是应该注意“假溢出”现象,可采用求余和空出一个位置的方式来避免;若采用链式结构存储时,则要注意当删除最后一个结点时,要更新尾指针。
3、(小组合作作业)strcmp函数的形参不是string类型,而是char[];
4、用顺序存储结构,定义队列和栈时,表示栈顶的top和队列队头front队尾rear不是指针类型,而是int类型;
5、栈top和队列rear总是指向下一个插入的位置,插入操作时后加1,删除操作时先减1;
6、具体操作时需要注意题目是否需要判断栈满或栈空(队列满或队列空)的问题。
四、目标完成情况和接下来的目标
1、目标完成情况:通过第三章的学习情况来看,已经基本掌握了顺序表和链表的应用,并有了进一步的理解。
2、接下来的目标:
1)学会优化自己的代码;
2)希望自己能够继续努力,跟上教学进度,学好下一章的内容;