第三章学习小结
栈和队列的编程都是新接触的,和以往的代码不太一样,做题的时候就会觉得比较困难,书上也没有代码可以参考,就要去参考很多网上的代码。
一、内容小结
栈和队列是操作受限的线性表
1、栈的定义和特点:后进先出 仅在表尾进行插入或删除操作的线性表
2、队列的定义和特点:先进先出 只允许在表的一段进行插入,而在另一端进行删除
3、一般线性表:随机顺序存取
栈
1、五个接口(初始化、入栈、出栈、出栈前判断栈空、入栈前判断栈满)
栈与递归(若在一个函数、过程或者数据结构定义的内部又直接或间接出现定义本身的应用,则称它们是递归的,或者是递归定义的)
1、保存在栈的内容:地址、参数值、局部变量值
2、优点:结构清晰、程序易读
缺点:每次调用要生成工作记录、保存状态信息入栈、返回是要出栈、恢复状态信息时间开销大
队列
1、队列看作循环数组,可利用出栈空间
ps:getline将\n转化成\0
二、完成作业的体会
1、括号匹配
这个题目在书上有算法,但是之前很少打这类题目,对如何实现还是不是很熟悉
2、银行业务队列简单模拟
这个题目我用了较为简单的数组的方法去实现,一开始在想要怎么才能a数组输出两个b只输出一个,后来发现在a输出里面又套了一个一样的输出就可以实现
三、推荐资料
在括号匹配中用了c_str(),我就去看了一下它的用法
https://www.cnblogs.com/curo0119/p/8783801.html
四、上周分析
上两周的事情可能有点多,并没有花很多时间在编程上,所以我认为完成得并不好
五、接下来的目标
延续上周的
多看一些题目,去思考怎么解题,多参考博客上优秀的代码,思考过后自己再打一遍,自己打一点课外的题目