博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
课程作业五
阅读量:4972 次
发布时间:2019-06-12

本文共 877 字,大约阅读时间需要 2 分钟。

课程作业五

题目描述

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

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

基本架构

1092957-20170521135543103-1170275327.png

数据结构栈的知识

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

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

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

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

栈的图示

1092957-20170523181639585-930668511.jpg

学习心得

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

转载于:https://www.cnblogs.com/031602523liu/p/6884758.html

你可能感兴趣的文章
使用 ref 和 out 传递数组注意事项
查看>>
纵越6省1市-重新启动
查看>>
hive安装以及hive on spark
查看>>
勇者无畏
查看>>
12864点阵液晶显示模块的原理和实例程序(HJ12864M-1)
查看>>
jz1074 【基础】寻找2的幂
查看>>
Wannafly模拟赛5 A 思维 D 暴力
查看>>
Javascript获取select下拉框选中的的值
查看>>
【Linux开发】CCS远程调试ARM,AM4378
查看>>
springmvc常用注解标签详解
查看>>
Linux之ssh服务介绍
查看>>
Java Swing提供的文件选择对话框 - JFileChooser
查看>>
排序:冒泡排序
查看>>
github下载安装
查看>>
Hat’s Words
查看>>
Java中instanceof关键字的用法总结
查看>>
引用类型-Function类型
查看>>
Nginx Configuration 免费HTTPS加密证书
查看>>
(转)Android 仿订单出票效果 (附DEMO)
查看>>
数据库多张表导出到excel
查看>>