zoukankan      html  css  js  c++  java
  • DS博客作业03--栈和队列

    1.本章学习总结

    本周学习了栈和队列的内容,学习进度的话就还好的样子。我渐渐理解栈就像水杯一样,只能又一个口进也只能又那个口出,先进后出就是栈的真义。而队列的话就差不多像两口齐开的羽毛球桶,一边进另一边出,先进先出就是队列的真义。他们本质上都属于线性存储结构,只是在加入删除操作的规则上比较特殊罢了,这些都是为了适应复杂的环境使问题简单化。在平时老师的讲解中也知道了一些在栈和队列上的基本操作—例如加入、删除、返回队列长度等等,也通过课本上的C语法对比PTA上题目要求的C++语法进行对比,知道他们在代码上的差异。还在CSDN上了解了include和include两种类的运用好像是属于SQL的容器操作,这两种类大大减少了我们在应对编程类题目时的代码量,而且他更容易记忆、对各种操作更加系统的特点真的是太好用了。

    2.PTA实验作业

    2.1.题目1:题目名称(编程题)

    6-2 在一个数组中实现两个堆栈 (20 分)

    2.1.1代码截图


    2.1.2本题PTA提交列表说明

    说明:emmmm,这个提交列表之所以会一次过的原因就是老师那天下午在讲编程题的时候,我这题还没做就在将的时候记下来了,那就说说我对这题代码的理解:S->Top1 = -1;S->Top2 = MaxSize,的两个操作就是为了让两个栈进行不同状态的初始化,之后需要一个空间来储存之后的操作,两个栈的栈满标识都不一样需要注意一下。

    2.2.题目2:题目名称(编程题)

    6-12 jmu-ds-舞伴问题 (20 分)

    2.2.1代码截图


    2.2.2本题PTA提交列表说明

    说明:这个题目的前三个函数比较简单,从其他处知道可以用? :来代替返回if else的选择。在提交代码的时候发现编译错误而且在考试那天也出现在了这里我梦了。。后面发现是函数与题目裁判给出的冲突了。

    2.3.题目3:题目名称

    7-1 jmu-字符串是否对称 (20 分)

    2.3.1设计思路(伪代码)

    思路:一开始是想建两个栈一个倒序进栈到时候两个直接挨个出栈比较就好了,之后发现在入站操作时可以直接用数组与栈直接比较
    伪代码:int flag=0,i=0,len;
    string 字符串str;
    将str挨个进栈s;
    if str[i]不等于 s.top()flag 变化
    else 往下比较知道站空
    if flag依旧为0 yes
    else no

    2.3.2代码截图

    2.3.3本题PTA提交列表说明

    A:一开始是想建两个栈一个倒序进栈到时候两个直接挨个出栈比较,可是发现出栈的时候顺序又问题

    B:发现在入站操作时可用到的那个数组已经储存了一个顺序的字符串,直接用数组与栈直接比较就行了

    2.4.题目4:题目名称

    7-6 银行业务队列简单模拟 (25 分)

    2.4.1设计思路(伪代码)

    思路:定义三个队列,一个放输入的字符,一个放奇数A,一个放偶数B,之后按照奇2偶1,奇先偶后的方式出队就好了
    伪代码:
    int flag = 0, n, 替代输入a,i;
    for a的每一个输入入队person;
    while (person不为空)
    奇数 A.push(p),偶数B.push(p);
    while (A.&& B不为空)
    if(!flag) cout A的队头(重复一次);
    cout B的队头
    假设其中一队已经输出完而另外一队还有
    cout它的全部剩下的

    2.4.2代码截图



    2.4.3本题PTA提交列表说明


    A:第一次想太简单了好多都没与考虑到
    A:之后过点发现有的点还要考虑是在保证另外全输出为空他还没空的情况

    B:少了对 假设其中一队已经输出完而另外一队还有的操作

    3.栈和队列上机考试错题及解决办法(-3--3分)

    本次上机考就写两道题写了记得最清楚的舞伴问题,编译错误到自闭猜了一个多小时错哪(最后还是没出来)

    3.1.错题1

    jmu-ds-舞伴问题

    3.2.错误代码实例:

    输出配对舞伴时,直接输出DeQueue(Fdancers,p)结果,忘了是应先调用DeQueue函数,再输出函数里面的p.name
    我这大脑混沌了怎么把调用函数到cout中输出出去了,没有真正理解就造成这个结果,编译错误的我一脸懵逼。。。

    3.3.分析错误原因及体会



    错误的将:cout<<e.name<<DestroyQueue(Fdancers);
    cout<<" "<<e.name<<DestroyQueue(Mdancers)<<endl;

    3.1.错题2

    6-3 jmu-ds-表达式求解

    3.2.错误代码实例:

    3.2.分析错误原因及体会

    实话说我不会,pta上面的也没打出来,emmmm就研究了一下题目混过了一个测试点。

  • 相关阅读:
    mysql基础语句
    .opt,frm,.MYD,.MYI文件如何转为.sql文件?
    如何使用phpstudy本地搭建多站点(每个站点对应不同的端口)
    吐槽下微软的vs code编辑器
    补码的两个重要问题
    注意力不集中是因为你没有紧迫感
    弧度与角度的转换公式推导
    ps图层面板上的【透明度】与【填充】的区别
    【ctrl+A】与【ctrl+单击图层缩略图】有什么区别?
    DRF-认证 权限 频率组件
  • 原文地址:https://www.cnblogs.com/asings/p/10746924.html
Copyright © 2011-2022 走看看