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


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

    1.本周学习总结(0--1分)

    谈谈你对栈和队列结构的认识及学习体会。
    
         这章有认真预习,但做题还要依靠书,记不住,可能还需要多加练习,在PTA上的题只做了栈的,队列的做得很少。还有对顺序栈和顺序队理解,对链栈和链队的题好像没做过这类题型,所以对链式的会比较陌生。但我觉得它们的做法差不多。栈(后进先出表)和队列(先进先出表)都是在端点进行插入和删除操作,区别为队列的插入在队尾进行,删除在对头进行,而栈的插入和删除都在栈顶进行。顺序类型的栈和队列的删除不是正真的删除,链式的才是正真的删除。
    

    2.PTA实验作业(6分)

    本周要求挑4道题目写设计思路,调试过程。题目要求如下:

        (1) 栈,队列函数题目分别选择1题
        (2) 栈,队列编程题分别选择1题
    

    原则上题目选择越难,代码量越大分值越高。

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

    2.1.1设计思路

    函数题不要写设计思路。编程题用文字描述设计思路。(可不写伪代码)

    2.1.2代码截图


    2.1.3本题PTA提交列表说明。

    PTA提交列表中的每个错误详细说明为什么及如何解决。如图:

    (1) Q1:输出超限(当第二个栈要入栈时,应是栈顶自减,由于之前做单栈习惯,对共享栈还不熟悉,写成对栈顶自增。)
        A1:经过调试后知道栈溢出,看书上共享栈的代码。
    (2) Q2:运行超时(第二个栈出栈时,栈顶自减,应是栈顶自减)
       A2:重新阅读代码,对比书上的代码发现问题。
    (3) Q3:答案错误(输出格式错误,没有换行符)
        A3:读题目,看样例。
    

    2.2.题目2: 7-2 jmu-ds-符号配对

    2.2.1设计思路

    函数题不要写设计思路。编程题用文字描述设计思路。(可不写伪代码)

    定义个字符型的数组,初始化一个有数组和栈顶位置的空栈,一个存放右括号的字符型数组。遍历字符串,遇到左括号进栈,遇到右括号存到数组 rightop[ ] 里。一个循环遍历栈和数组 rightop[ ] 
    比较栈顶的符号与数组 rightop[ ] 的符号对应的左括号是否相等,若不相等,flag等于1,输出栈顶和 no。循环出来后,有三种情况:(1)栈不空,flag等于1,输出栈顶和 no; (2)数组不空,flag等于1,输出 no; (3)flag不等于1,输出yes;
    

    2.2.2代码截图

    自己的做法



    老师在课上讲的做法


    2.2.3本题PTA提交列表说明。

    PTA提交列表中的每个错误详细说明为什么及如何解决。如图:

    (1) Q1:自己的做法在编译器上运行是对的,但提交到PTA上部分正确。
       A1:自己调试也没发现问题,最后叫几个同学帮忙看才发现问题(如果括号是一对的输入的话,不能正确的判断出是否配对成功,例:()[]{} )
    

    (2) Q2:自己的做法因为存在上面的问题不知道怎么解决,所以采用老师上课讲的方法。
    (3) Q3:编译错误(看不懂提示的错误)
    A3:室友帮忙看的(提交时没有把编译器改成C++)

    2.3.题目3:6-12 jmu-ds-舞伴问题

    2.3.1设计思路

    函数题不要写设计思路。编程题用文字描述设计思路。(可不写伪代码)

    2.3.2代码截图


    2.3.3本题PTA提交列表说明。

    PTA提交列表中的每个错误详细说明为什么及如何解决。如图:

    (1) Q1:答案错误(舞会的人名和性别没有存放到相应的队列中。)
        A1:两个结构体的混用,分别存放男女舞会的人的队列的使用,使用错了。根据编译器的提示,调整打出类型名,看什么时候编译器自动跳出后面的变量名。
    (2) Q2:答案错误(输出没有配对成功参加舞会的人的性别和数量是错的)
        A2:在判断队列是否空时,两种情况的返回值错了。理解不透彻。自己找不出原因,同学帮忙看的。
    

    2.4.题目4:题目名称

    2.4.1设计思路

    函数题不要写设计思路。编程题用文字描述设计思路。(可不写伪代码)

    2.4.2代码截图

    2.4.3本题PTA提交列表说明。

    PTA提交列表中的每个错误详细说明为什么及如何解决。如图:

    (1) Q1:
        A1:
    (2) Q2:
        A2:
    

    3.栈和队列上机考试(-3--3分)

    错题及解决办法

    截图错题代码,分析错误原因及后续要改进的地方。请至少列举2题。如果拿满分同学,这部分可不写,直接拿3分。
    注意:分析错误原因及体会,注意讲代码错误。
    

    3.1 题目一:6-2 另类循环队列

    3.1.1 错题代码

    错误原因:入队操作错了,因为没给尾指针,在对循环队列的对头自增时,没弄清楚,直接就对队列元素个数加一了,导致元素没有入队。把没有尾指针的入队操作理清楚。
    体会:重新去看书上的循环队列的相关操作,要学会举一反三。

    3.2 题目2:7-1 jmu-ds-符号配对

    3.2.1 错误代码


    错误原因:在比较栈顶的括号和右括号是否相等时,粗心,比较的等式写错了可能还执念与之前自己的做法,对这个做法没有了解通透。导致错误。

    体会: 多阅读学习其他同学的代码,也许其他同学的做法比较简单,而自己的做法比较笨拙。还有对自己做过的题要温故而知新。

  • 相关阅读:
    英语范文——人的名字的重要性
    英语写作常用句型
    英语范文——构建绿色校园
    OpenGL实例:三角形
    Python+Selenium笔记(二):配置谷歌+IE环境
    Python+Selenium笔记(一):环境配置+简单的例子
    Python笔记(八):web开发
    Python笔记(七):字典、类、属性、对象实例、继承
    Python笔记(六):推导数据
    Python笔记(五):异常处理和数据存储
  • 原文地址:https://www.cnblogs.com/Gejkdj/p/10743463.html
Copyright © 2020-2023  润新知