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 错误代码


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

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

posted on 2019-04-21 21:55  猜丁壳  阅读(194)  评论(0编辑  收藏  举报