1.本周学习总结
- 栈和队列的理解很简单,但是实际运用很麻烦。要用栈,队列这种结构去解决问题,是很令人费解的,例如在一个数组中实现两个堆栈 ,定义两个头尾指针看似简单,但是实际操作起来怎样都无法正确写出那道题。从网络上借鉴了很多例子,依然是编译错误 很受打击,简要的逻辑大家都明白,只是把它转化成代码实在是有些难度。需要去更多背诵一些代码,我想能够有更多简单一点的题目,大概使我能够对多一点点吧。
2.PTA实验作业
2.1.题目1:6-1 另类堆栈
2.1.1设计思路
栈头是否等于最大值 等于则是满,如果!S->Top,则是空。
2.1.2代码截图
2.1.3本题PTA提交列表说明
Q1:编译错误是因为用了C++的语法cout<<,没有认真审题。
A1: 在询问同学之后改正了这题。
2.2.题目2:6-12 jmu-ds-舞伴问题
2.2.1设计思路
男士和女士的信息存放在一位数组中,作为输入.扫描该数组各元素,并输出直至队列变空。
2.2.2代码截图
2.2.3本题PTA提交列表说明
Q1:本题总体难度较大,因为队列的逻辑明细不如栈那么明确,并且在cout时没有加上\n,导致了答案错误
A1: 必须要真正的理解队列才可能写出这道题目,就比如rear和front的顺序老是反过来,在参考了同学之后才写出。
2.3.题目3:7-1 jmu-字符串是否对称
2.3.2代码截图
2.3.3本题PTA提交列表说明
Q1:在之前的学习中对于编程题和生疏,连using namespace std这个头文件都忘记加上去了。
A1: 本题总体还算好理解,用stack<char> 和string去建立栈和字符串。
2.4.题目4:7-5 jmu-报数游戏
2.4.1设计思路
本题有一些难度,由题目可知本题需要循环,所以应该可以建立两个符号 A,B,A是当前人数,B用于记录多少人退出,当A小于B的时候,循环停止,并输出。
2.4.2代码截图
2.4.3本题PTA提交列表说明
Q1:本题我真的不是很理解,但是在看了同学的分析之后,只能尝试去做一下
A1: 在qu->front等于其加+a时,要对count也就是A取余,我还并没有完全理解。很抱歉。
3、栈和队列上机考试 错题及解决办法
我在上机考试时,并没有完整答出题目,所以没有错题可写。
3.1错误题目1
3.1.1错误代码截图
6-2 在一个数组中实现两个堆栈
3.1.2错误原因及体会
这道题目乍一看,我以为能够凭借自己能力写出,运用首尾两个指针同时运行,实现两个堆栈,可是总是编译错误。现在在看了其他的代码之后,发现是return的值出现错误,而且少了很多种情况,比如tag=1或者tag=2的情况。