DS博客作业03--栈和队列

1.本周学习总结

本章是对栈和队列两种结构的学习,预习时是比较轻松的,感觉难度并不大,但后来也确实遇到了不少的坎。
首先就是在pta的符号配对和表达式转化上面,这两题由于编程量较大,所以细节方面不好把握,容易出错,
也是花了很长时间才打出来,如果现在再打一遍估计也是很难快速完成,甚至还会出错,也或许就是因为编
程量不够。然后就是迷宫问题的出现,一下子让我无从入手,甚至都看不懂迷宫问题,这也是花了很长时间
才将其看懂。还有就是类的使用一下子简化了代码,感觉这方面的东西挺有用的。自我感觉,栈和队列还是
比较好理解,但是由于编程速度不够快,准确率不够,所以导致本章的学习并不那么理想。

2.PTA实验作业

2.1.题目1:6-2 在一个数组中实现两个堆栈

2.1.2代码截图

2.1.3本题PTA提交列表说明

Q1:刚开始第一次提交出现了段错误
A1:这个是因为刚开始的Top设置出现了问题,经过调整后就解决了
Q2:然后就出现了疯狂的输出超限
A2:由于此题是函数题,又不好调试,只能自己看,经过了多遍的尝试,原来是返回值的问题
体会:函数题难以调试,所以感觉比编程题难做

2.2.题目2:6-12 jmu-ds-舞伴问题

2.2.2代码截图

2.2.3本题PTA提交列表说明

Q1:本题的第一次错误是编译错误
A1:主要是在机房没打完,而且还对题目理解错了
Q2:回来后对代码进行查看
A2:发现本题已经定义了两个队列,无需再定义,所以再次对代码进行了修改
Q3:对代码进行修改并拿样例进行测试之后,竟然格式错误
A3:找了许久,发现少了一个空格,果然还是不够细心啊

2.3.题目1:7-4 表达式转换

2.3.1设计思路

1.把符号和数字放在string里面
2.对string变量进行遍历
3.若为数字和小数点就直接输出,若为'+''-',要先判断是正负号还是运算符,负号直接输出,运算符则出栈并输出直到栈顶是'('或为空,然后进栈
若为'*''/'就出栈并输出直到栈顶为'+''-''('或为空,然后进栈
若为'(',则直接进栈,若为')',则出栈并输出直到'(',然后将’(‘出栈

2.3.2代码截图

 2.3.3本题PTA提交列表说明

Q1:刚作此题时还不是很了解此题,写了错误的转化方式
A1:经过看课本知道了怎么转化,所以对代码进行了修改
ps:后来出现了一些编译错误都是一些弱智的问题,就不说了(忘了)
Q2:修改后有一些点是可以过的,但就是不能全队
A2:仔细看题,发现小数点和正负号也要判断
Q3:再次修改代码,还是不过
A3:经过漫无止境的尝试,在一个if中找到了错误,哭了。。。。。。

2.4.题目1:7-8(选做) 银行排队问题之单队列多窗口服务

 2.4.1设计思路

1.建一个结构体用来存放每个用户来的时间和需要服务的时间
2.定义一个队列按顺序放每一个用户的信息
3.定义一个数组存放每个窗口的信息,刚开始都为0
4.出列一个用户,从第一个窗口开始遍历数组,如果cometime大于数组的值,则将用户被服务结束的时间赋予这个数组,即s[i]=cometime+dotime,并记录服务人数,即count[i]++。
若遍历完后还未找到合适的数组,则判断哪一个最先结束,将用户被服务结束的时间赋予这个数组,即s[i]=s[i]+dotime,并记录等待时间,即waitime=waitime+等待时间,并记录服务人数,即count[i]++。
注:dotime>60,默认60.重复上述操作。定义一个变量存放等待时间,一个数组存放每个窗口服务的人数
5.输出题目所要求的数据

2.4.2代码截图

2.4.3本题PTA提交列表说明

Q1:刚接触这一题的时候难以立即有思路,本题的数据输入有点不好操作
A1:突发奇想,能不能定义一个结构体类型的队列?竟完美解决这个问题
Q2:有了想法之后开始码代码,过程中窗口问题也是想了挺久
A2:最后决定用数组来存放,这样比较直观
Q3:一切准备就绪后,代码也码完了,但就是有一个点过不了
A3:经过多遍检查后,猜想是min的初始值太小了,改了之后就过了

3、栈和队列上机考试

题目一:7-1 符号配对

错误代码:

错误原因:

1.没有对len的值进行更新,使得每一次的len都是第一次输入的长度,所以要在15行的位置加一个len=ch.size

2.没有76行位置进行i++,这样会导致出现/*/的符号时发生错误

体会:

1.打代码速度很重要,准确率更重要,要和代码合二为一,怎样才能减少错误

2.增强调试代码的能力,学会看懂pta提交时提示的错误

3.说了这么多,还是因为本题没有及时复习的原因

题目二:6-3 jmu-ds-表达式求解

错误代码:

错误原因:

1.上机考时间有限,又被其它题目卡住,所以基本在本题没花什么时间,不过也写了一段代码。

2.本段代码其实错的还蛮多的,首先没有对postexp中的字符进行转化成数字,然后就是在减法中两个数字的对象搞反。

另写代码:

ps:本代码能过样例,不知是否能过此题

体会:

1.要合理利用时间,不要在某题上卡太久

2.审题要认真,自认为审题的能力比较差,经常理解错题目意思

3.本题其实难度不算大,由于什么原因在上机考中没打出来,我也不知道。。。。

转载于:https://www.cnblogs.com/putianliuzhong/p/10738773.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值