1.学习总结
2.PTA实验作业
2.1 题目1:jmu-字符串是否对称
2.2 设计思路
定义一个栈S,字符型数组str,字符型变量e,整形变量i=0输入str为S初始化,并将str入栈while(i小于S->Top) 得到栈顶元素e并出栈 如果S->Data[i]!=e break i++如果i Top则输出no否则输出yes
2.3 代码截图
2.4 PTA提交列表说明
pta编译器选错,改成c++后通过
2.1 题目2:jmu-报数游戏
2.2 设计思路
定义一个队列Q输入总人数n,以及规定的退出位数m如果m大于等于n,则输出error否则 for i=0 to i
2.3 代码截图
2.4 PTA提交列表说明
错误是因为将队列中最后一个元素的输出写在了else外,导致输出error后还会输出队列的第一个元素
2.1 题目1:银行业务队列简单模拟
2.2 设计思路
定义两个队列A,B输入N位顾客的编号,奇数编号入队A,偶数编号入队Bwhile(A和B都不为空) 输出A的队头元素,然后出队 再输出A的队头元素,然后出队 输出B的队头元素,然后出队如果A不为空 while(A不为空) 输出队头元素 出队否则 while(B不为空) 输出队头元素 出队
2.3 代码截图
2.4 PTA提交列表说明
一开始错是因为输出第二个A的元素时没有出队
然后是因为输出错了应该输出B.front
最后一次是因为格式错误了多输出了一个空格
3.1 栈PTA排名
3.2 队列PTA排名
3.3 我的总分:284
4. 阅读代码
网址
这个是实现迷宫问题的主要代码,通过队列实现,代码时间复杂度为O(n),相比于用栈,栈需要把所有的可走方块都存进去,而队列只需要向外拓展寻找可走的点,并且队列找出来的路径是最短路径,是通过广度优先搜索方法,栈是通过深度优先搜索方法。
5. 代码Git提交记录截图