zoukankan      html  css  js  c++  java
  • 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 错误代码


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

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

  • 相关阅读:
    戒烟与苦乐原则
    计算机视觉(二)-opencv之createTrackbar()详解
    计算机视觉(一)-openCV的安装及使用
    友谊之光
    深度学习-神经网络
    理解与学习深度卷积生成对抗网络
    修改路由器用的校园网账号
    参加Folding@Home(FAH)项目,为战胜新冠肺炎贡献出自己的一份力量
    更改路由器为老版本固件的教程
    逻辑回归(Logistic Regression)详解,公式推导及代码实现
  • 原文地址:https://www.cnblogs.com/Gejkdj/p/10743463.html
Copyright © 2011-2022 走看看