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

    1.本周学习总结

    本周学习中学习了栈和队列,栈和队列都属于线性结构,栈和队列不同于线性表的地方在于它们的相关运算具有一些特殊性,所以栈和队列也称为操作受限的线性表。

    1.栈

    栈是重要且常用的数据结构之一,是一种只能在一端进行插入或者删除的线性表,并且特点是“后进先出”,所以也称作是后进先出表。学习了栈的顺序存储和链式存储,并掌握其基本运算的实现。还有学习练习使用C++的摸板类:stack.(注:栈的删除是物理删除,数据在栈内不存在)。同时还进一步学习共享栈,从两边分别向中间进行操作,学习其中的基本运算。并且学习通过栈的应用,学会转换中缀表达式和后缀表达式,且求后缀表达式的值。以及回溯法来进行迷宫游戏。

    2.队列

    队列是一种受限的线性表,仅允许在表的一端进行插入操作,在另一端进行删除操作,并且其特点是“先进先出”,所以也称作先进先出表。学习队列的顺序存储和链式存储及其基本运算的实现,并且学习环形队列的基本运算,并且学习练习使用C++的摸板类:queue.(注:链式存储一般不考虑队满)。并接触双向队列。

    2.PTA实验作业

    2.1.题目1:6-1 另类堆栈

    2.1.1设计思路:函数题无需。

    2.1.2代码截图

    2.1.3本题PTA提交列表说明

    • Q1:多种错误
    • A1:ElementType Pop( Stack S )函数的返回值错误,导致运行超时。并且输出时,没有 导致格式错误
    • Q2:答案错误
    • A2:输出函数中最后,top指针先--,而不是后--;

    2.2.题目2:6-11 另类循环队列

    2.2.1设计思路:函数题无需。

    2.2.2代码截图

    2.2.3本题PTA提交列表说明

    • A1:运行错误
    • Q1:Q->Front = (Q->Front + 1) % Q->MaxSize写成了Q->Count = (Q->Front + 1) % Q->MaxSize,导致运行超时

    3、栈和队列上机考试

    错题及解决办法

    1.6-1 在一个数组中实现两个堆栈 (15 分)

    问题:一开始一次性打完代码的时候,第一次是出现了段错误
    代码如下:

    明眼人都看的出来,是分配空间出了问题,没错我就是那个没有看出来的人,还写的十分的快乐,导致了段错误产生,一开始在做pta题集的时候,也出现过段错误,因为当时的一个函数中的相等我用成了一个等号,所以导致错误,所以一直纠结哪里少了等号,所以打代码的人要细心,解决了这个错误,说不定还有下一个bug,不能一成不变。
    后面改完后,仍然还只有部分正确,
    错误如下:

    因为复制粘贴没有改过来 ,导致pop函数if Tag==2时,条件牛头不对马嘴。

    6-2 jmu-ds-舞伴问题

    问题:求算队列长度,入队和出队的操作问题不大,在输出队列的时候却遇到了问题,因为while函数写错了,导致输出错误,使答案错误
    代码如下:

    后来决定在while循环里面在放一个for循环,并用判断两个队列都不空的时候,分别输出男队列和女队列的人。
    改正代码如下:

    期间有个小插曲,就是自己判断队列是空的时候return的是ok,而自己误以为是error,所以浪费了一些时间去做答案错误。
    最后答案还是错误,结果发现是男女输出顺序错了。。。导致答案错误,再改的时候格式错误。。。因为男女后面的空格和换行符没换回来。。细节决定成败。。。

  • 相关阅读:
    Java实现 LeetCode 537 复数乘法(关于数学唯一的水题)
    Java实现 LeetCode 537 复数乘法(关于数学唯一的水题)
    Java实现 LeetCode 535 TinyURL 的加密与解密(位运算加密)
    Java实现 LeetCode 535 TinyURL 的加密与解密(位运算加密)
    如何在 Linux 中统计一个进程的线程数
    linux下查看线程数的几种方法
    深入理解linux系统下proc文件系统内容
    嵌入式 如何定位死循环或高CPU使用率(linux)
    Linux 下查看线程信息
    Linux netstat命令详解
  • 原文地址:https://www.cnblogs.com/wxj991220/p/10747488.html
Copyright © 2011-2022 走看看