第三章小结:)
第三章小结
这一章讲的主要是栈和队列。从数据结构的角度上说,栈和队列也是线性表,只不过是操作受限的线性表,因此,也被称为限定性的数据结构。
栈分为顺序栈和链栈,队列也分为顺序表示和链式表示,其表示和操作的实现和之前的线性表的操作差不多。
本章的第三小节讲的是栈和递归,老师在课堂上再次举了PrintN这个函数的例子,对比了用栈和之前用迭代的方法的对比。也讲了递归方法的优缺点,优点是,结构清晰,程序易读;缺点是,时间开销大,每次调用要生成记录,保存状态信息入栈,返回时要出栈。
栈与队列的相同点:
1.都是线性结构。
2.插入操作都是限定在表尾进行。
3.都可以通过顺序结构和链式结构实现。、
4.插入与删除的时间复杂度都是O(1),在空间复杂度上两者也一样。
5.多链栈和多链队列的管理模式可以相同。
栈与队列的不同点:
1.删除数据元素的位置不同,栈的删除操作在表尾进行,队列的删除操作在表头进行。
2.应用场景不同;常见栈的应用场景包括括号问题的求解,表达式的转换和求值,函数调用和递归实现等;常见的队列的应用场景包括计算机系统中各种资源的管理,消息缓冲器的管理等。
3.顺序栈能够实现多栈空间共享,而顺序队列不能。
在做作业的时候,遇到了一些小麻烦,例如在做选择题时有一些课堂上没有讲到的东西,要自己翻书或者看幻灯片解决。在编程题括号配对的题目中,提交完有一点问题,因为我一开始使用C语言写的,提交了几次之后总有一个最长字符串总是答案不对,问了和我有一样问题的同学,好像也不知道怎么解决。后面听了舍友建议,重新用C++来写之后,就没有问题了,实践题呢就还好,没有什么特别难办的地方。
上一次定的小目标完成的也没有让自己很满意,听了老师的建议后,也决定多多写一点代码,好好练习,至于星期一的小测,希望能够好好复习有个好成绩。