博客作业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),相比于用栈,栈需要把所有的可走方块都存进去,而队列只需要向外拓展寻找可走的点,并且队列找出来的路径是最短路径,是通过广度优先搜索方法,栈是通过深度优先搜索方法。

5. 代码Git提交记录截图

posted @ 2018-04-14 20:23  你们走啊  阅读(168)  评论(2编辑  收藏  举报