博客作业03--栈和队列
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<S->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<n
把i入队
while(队列元素个数不为1)
如果元素的位置不是规定的退出位数则出队在入队
否则输出该元素并出队
再输出队列中最后一个元素
2.3 代码截图
2.4 PTA提交列表说明
错误是因为将队列中最后一个元素的输出写在了else外,导致输出error后还会输出队列的第一个元素
2.1 题目1:银行业务队列简单模拟
2.2 设计思路
定义两个队列A,B
输入N位顾客的编号,奇数编号入队A,偶数编号入队B
while(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. 阅读代码
网址 https://blog.csdn.net/xdf0101/article/details/50410030
这个是实现迷宫问题的主要代码,通过队列实现,代码时间复杂度为O(n),相比于用栈,栈需要把所有的可走方块都存进去,而队列只需要向外拓展寻找可走的点,并且队列找出来的路径是最短路径,是通过广度优先搜索方法,栈是通过深度优先搜索方法。