博客作业03--栈和队列

1.学习总结

2.PTA实验作业

2.1 题目1:jmu-字符串是否对称

2.1.1 设计思路

建栈S
定义数组str,并输入字符串
for i=0    to    str[i]!=;\0'
    把字符串进栈
for i=0    to    str[i]!=;\0'
    出栈并赋值给e
    如果e与str[i]相等,flag=1
如果flag为0
     输出yes
否则输出no

2.1.2 代码截图

2.1.3 PTA提交列表说明

第一次用C编译器编译错误,于是改用C++,提交后提示段错误,仔细浏览代码,发现我写的代码在出栈入栈时没有判断栈空栈满,修改代码,添加判断条件,提交后就对了。

2.2 题目2:列车厢调度

2.2.1 设计思路

定义字符数组str1,str2
输入1,2号铁轨列车顺序
建栈S
定义指针数组way
while(str1[i]!='\0')
    如果 str1[i]与str2[j]相等
        路径为1->2
    如果栈顶与str2[j]相等
        路径为3->2,栈顶元素出栈
    如果str1[i]与str2[j]不相等
        路径为1->3,str[i]入栈
如果S不为空
    while栈S不为空
       遍历str2余下元素
            如果flag==0而且栈顶元素与str2[t]相等
                路径为3->2,出栈
            否则flag=1,出栈
如果flag为0,输出指针数组way
否则输出Are you kidding me?

2.2.2 代码截图

2.2.3 PTA提交列表说明

提交后“最长序列,一般情况,可行”这个测试点错误,于是我就测试了最长序列,但我只测试了比较简单的顺序,发现并没有错误,于是我就又去测试了其他的一些数据,终于发现程序中少了当栈顶与str2[j]相等时的情况,加上之后就正确了。

2.3 题目3:银行业务队列简单模拟

2.3.1 设计思路

建队列A,B
输入n
输入顾客编号,偶数去B队列,奇数去A队列
while((!QueueEmpty(A))||(!QueueEmpty(B)))
    如果A不为空
        A出队列并输出
    如果A不为空
        A出队列并输出
    如果B不为空
        B出队列并输出 

2.3.2 代码截图

2.3.3 PTA提交列表说明

本题一遍就正确

3.截图本周题目集的PTA最后排名

3.1 栈PTA排名

3.2 队列PTA排名

3.3 我的总分:

227

4. 阅读代码


功能:输入两个整数序列,第一个序列表示栈的压入顺序,判断第二个序列是否为该栈的可能弹出顺序。假设压入栈的所有数字均不相同。
优点:对于解题的方法挺巧妙的,我刚看这个题目时还是有点懵的,它考虑了可能会有数据先入栈又马上出栈的一些情况,让我又学到了一些知识。
https://blog.csdn.net/tianya_team/article/details/50342489

5. 代码Git提交记录截图

posted @ 2018-04-14 20:47  久念  阅读(212)  评论(2编辑  收藏  举报