zoukankan      html  css  js  c++  java
  • 课程作业五

    课程作业五

    题目描述

    • 经过第四次作业,相信大家都对面向对象的分析与设计有了萌芽式的了解。那么本次作业的第一点就是针对第四次作业的完善。请根据第四次作业分析设计的结果进行编码。要求根据设计的类图进行编码,写出实现该程序所需要的类,
    • 学习数据结构栈的知识。

    上次作业我已经将我的一个类分为了四个类,而且已经进行了代码的实现。

    GIT传送门

    基本架构

    数据结构栈的知识

    在四则运算器的计算算式的值的编写中,我用到了栈。下面是我所学到的一些知识。

    栈是一种特殊的线性表,只能从固定的方向进出,而且栈进出的基本原则是:先进栈的元素后出栈。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针。

    1. 使用栈时,先包含相关的头文件
    #include<stack> 
    
    1. 定义栈
    stack<栈的类型> 栈的名字;
    
    1. 栈的标准库函数

    s为栈的名字
    s.empty() 如果栈为空返回true,否则返回false
    s.size() 返回栈中元素的个数
    s.pop() 删除栈顶元素但不返回其值
    s.top() 返回栈顶的元素,但不删除该元素
    s.push() 在栈顶压入新元素
    ```

    栈的图示

    学习心得

    由于之前C语言的上机课有进行过栈的学习,所以对栈也有了一定的基本了解,在计算器的编码中也用到了一些栈的知识。但是也遇见过一些非法访问的错误,在这次学习后也会注意这些问题。在学习过程中也接触了“堆”这个概念,堆是无序的,可以任意的取和插入,而栈不是这样子的。我觉得堆和栈的区别就在于:一个是静态,一个是动态。堆是在程序运行时自动分配的。使用时要注意释放内存。(我觉得和链表很像)

  • 相关阅读:
    Docker安装ngnix进行挂载
    Linux上传下载小工具
    uniapp——原生导航栏
    uniapp——scroll-view组件隐藏滚动条
    边框阴影——box-shadow
    uniapp-监听自定义跳转
    uniapp整屏滑动
    用伪类写圆点css
    Vue——生命周期
    uniapp多选按钮
  • 原文地址:https://www.cnblogs.com/031602523liu/p/6884758.html
Copyright © 2011-2022 走看看