当前位置: 首页 > news >正文

day3_C++

day3_C++

  • 思维导图
  • 用C++的类完成数据结构 栈的相关操作
  • 用C++的类完成数据结构 循环队列的相关操作

思维导图

请添加图片描述

用C++的类完成数据结构 栈的相关操作

stack.h

#ifndef STACK_H
#define STACK_H#include <iostream>
#include <cstring>using namespace std;typedef int datatype;#define MAX 5class Stack
{
public:/*构造函数*/Stack();/*拷贝构造函数*/Stack(const Stack& others);/*析构函数*/~Stack();/*判满 true 满 */bool is_full();/*判满 true 空*/bool is_empty();/*入栈*/void in_stack(datatype e);/*出栈*/datatype out_stack();/*清空栈*/void clear_stack();/*求栈顶元素*/datatype get_stackTop_E();/*求栈的大小*/void get_stackSize();private:int top;datatype *data;
};#endif // STACK_H

stack.cpp

#include "stack.h"Stack::Stack():data(new int[MAX]),top(-1)
{memset(this->data,0,MAX);//在堆区申请max个int大小的空间cout<<"栈容器初始化成功"<<endl;
}Stack::Stack(const Stack& others):data(new int[MAX]),top(others.top)
{//深拷贝,将堆区内容也拷贝进来for(int i = 0;i<MAX-1;i++){this->data[i] = others.data[i];}cout<<"拷贝完成"<<endl;
}Stack::~Stack()
{//释放堆区数据delete []data;cout<<"析构完成"<<endl;
}bool Stack::is_full()
{if(this->top ==MAX-1)return true;elsereturn false;
}bool Stack::is_empty()
{if(this->top == -1)return true;elsereturn false;
}void Stack::in_stack(datatype e)
{if(this->is_full()==false){this->top++;this->data[this->top] = e;cout<<"入栈成功"<<endl;}else{cout<<"入栈失败,栈满"<<endl;}
}datatype Stack::out_stack()
{if(this->is_empty()==false){datatype temp = this->data[this->top];this->top--;return temp;}else{cout<<"出栈失败,栈空"<<endl;return NULL;}
}void Stack::clear_stack()
{if(this->is_empty()==false){this->top=-1;cout<<"清空成功"<<endl;}else{cout<<"栈空,无需清理"<<endl;}
}datatype Stack::get_stackTop_E()
{if(this->is_empty()==true)return NULL;return this->data[this->top];
}void Stack::get_stackSize(){cout<<"栈中有元素 "<<this->top+1<<"个"<<endl;
}

用C++的类完成数据结构 循环队列的相关操作

queue.h

#ifndef QUEUE_H
#define QUEUE_H
#include <iostream>
#include <cstring>using namespace std;typedef int datatype;
#define MAX 5class Queue
{public:/*构造函数*/Queue();/*拷贝构造函数*/Queue(const Queue& others);/*析构函数*/~Queue();/*判满 true 满 */bool is_full();/*判满 true 空*/bool is_empty();/*入队*/void in_queue(datatype e);/*出队*/datatype out_queue();/*清空队*/void clear_queue();/*求队的大小*/void get_queueSize();private:datatype *data;int font;int tail;
};#endif // QUEUE_H

queue.cpp

#include "queue.h"Queue::Queue():data(new int [MAX]),tail(0),font(0)
{memset(this->data,0,MAX);cout<<"循环队列初始化成功"<<endl;
}Queue::Queue(const Queue& others):data(new int[MAX]),font(others.font),tail(others.tail)
{//深拷贝int f = this->font;int t = this->tail;while ((f+MAX)%MAX==t) {this->data[f] = others.data[f];f++;}cout<<"拷贝完成"<<endl;
}bool Queue::is_full()
{if((this->tail+1)%MAX == this->font){return true;}return false;
}bool Queue::is_empty()
{if(this->font == this->tail){return true;}return false;
}Queue::~Queue()
{//释放堆区数据delete []data;cout<<"析构完成"<<endl;
}void Queue::in_queue(datatype e)
{if(this->is_full() == true){cout<<"队列满了"<<endl;return ;}this->data[this->tail] = e;this->tail =  (this->tail+1)%MAX;cout<<"入队成功"<<endl;
}
/*出队*/
datatype Queue::out_queue()
{if(this->is_empty() == true){cout<<"队列空,无元素"<<endl;return NULL;}int temp =  this->data[this->font];this->font = (this->font+1)%MAX;return temp;
}void Queue::clear_queue()
{if(this->is_empty() == true){cout<<"队列空,无元素"<<endl;return;}this->font = 0;this->tail = 0;
}void Queue::get_queueSize()
{cout<<"队列的大小是:" <<(this->tail-this->font+MAX)%MAX<<endl;
}

相关文章:

day3_C++

day3_C 思维导图用C的类完成数据结构 栈的相关操作用C的类完成数据结构 循环队列的相关操作 思维导图 用C的类完成数据结构 栈的相关操作 stack.h #ifndef STACK_H #define STACK_H#include <iostream> #include <cstring>using namespace std;typedef int datat…...

力扣题解(73. 矩阵置零),带注释

题目描述 链接:点我 题解 //法一 使用hashset记录有0的横纵坐标即可 class Solution {public void setZeroes(int[][] matrix) {HashSet<Integer> row new HashSet<Integer>();HashSet<Integer> col new HashSet<Integer>();for(int i 0;i <…...

SpringMVC应用

文章目录 一、常用注解二、参数传递2.1 基础类型String2.2 复杂类型2.3 RequestParam2.4.路径传参 PathVariable2.4 Json数据传参 RequestBody2.5 RequestHeader 三、方法返回值3.1 void3.2 Stringmodel3.3 ModelAndView 一、常用注解 SpringMVC是一个基于Java的Web框架&#…...

百度输入法全面升级,打造首个基于大模型的输入法原生应用

基于文心一言&#xff0c;百度输入法宣布全面升级&#xff0c;打造行业首个“基于大模型的输入法原生应用”&#xff0c;从“输入工具”全面转型为“AI创作工具”。 近日&#xff0c;百度文心一言正式向公众开放。基于文心一言&#xff0c;百度输入法宣布全面升级&#xff0c;打…...

如何解决GitHub 访问不了?小白教程

GitHub 是全球最大的代码开源平台&#xff0c;小伙伴们平时都喜欢在那里找一些优质的开源项目来学习&#xff0c;以提升自己的编程技能。 但是很多小白初探GitHub 发现访问不了&#xff0c;不能访问 通过一下方法绕过这堵墙&#xff0c;成功下载 GitHub 上的项目。过程非常简单…...

龙芯指令集LoongArch——学习笔记(1)

1 龙芯架构 PDF下载链接&#xff1a; https://www.loongson.cn/download/index 1.1 龙芯架构概述 龙芯架构具有 RISC 指令架构的典型特征。 它的指令长度固定且编码格式规整&#xff0c; 绝大多数指令只有两个源操作数和一个目的操作数&#xff0c; 采用 load/store 架构&…...

ubuntu 20.04 docker安装emqx 最新版本或指定版本

要在Ubuntu 20.04上使用Docker安装EMQX&#xff08;EMQ X Broker&#xff09;的4.4.3版本&#xff0c;您可以执行以下步骤&#xff1a; 1.更新系统包列表&#xff1a; sudo apt update2.安装Docker&#xff1a; sudo apt install docker.io3.启动Docker服务并设置其开机自启…...

软件测试/测试开发丨学会与 AI 对话,高效提升学习效率

点此获取更多相关资料 简介 ChatGPT 的主要优点之一是它能够理解和响应自然语言输入。在日常生活中&#xff0c;沟通本来就是很重要的一门课程&#xff0c;沟通的过程中表达越清晰&#xff0c;给到的信息越多&#xff0c;那么沟通就越顺畅。 和 ChatGPT 沟通也是同样的道理&…...

CEF内核和高级爬虫知识

(转)关于MFC中如何使用CEF内核&#xff08;CEF初解析&#xff09; Python GUI: cefpython3的简单分析和应用 cefpython3&#xff1a;一款强大的Python库 开始大多数抓取尝试可以从几乎一行代码开始&#xff1a; fun main() PulsarContexts.createSession().scrapeOutPages(&q…...

视频集中存储/云存储/磁盘阵列EasyCVR平台分组批量绑定/取消设备功能详解

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台视频能力丰富灵活&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。视频汇聚融合管理平台EasyCVR既具备传…...

科技成果鉴定测试报告一般包含哪些测试内容?

软件测评报告 一、科技成果评价是需要做第三方软件测评报告&#xff0c;一般是证明技术指标点是否完善&#xff0c;覆盖主要申报内容&#xff0c;应用软件项目科技成果鉴定测试内容&#xff1a; &#xff08;一&#xff09;是否完成合同或计划任务书要求的指标&#xff1b; …...

IDEA中的“Deployment“ 将项目直接部署到服务器上

ntelliJ IDEA中的"Deployment"工具栏是一个方便的工具&#xff0c;用于将你的项目直接部署到服务器上。这个工具栏提供了三种部署的方式&#xff1a; 1.Web Server在本地电脑上&#xff0c;并且服务器运行目录也在项目目录下。 2.Web Server在本地电脑上&#xff0c;…...

密室逃脱小游戏

欢迎来到程序小院 密室逃脱 玩法&#xff1a; 判断可生存的空间&#xff0c;鼠标点击屏幕进行人物左右移动&#xff0c;躲避闸道进行生存&#xff0c;每进行一次关卡都会有分数统计&#xff0c;赶紧去闯关吧^^。开始游戏https://www.ormcc.com/play/gameStart/176 html <c…...

【MyBatis】MyBatis项目结构的搭建

Mybatis项目的搭建 依赖 将打包方式添加为jar包 <groupId>com.qinghe.mybatis</groupId><artifactId>Mybatis_demo3</artifactId><version>1.0-SNAPSHOT</version><packaging>jar</packaging>添加如下依赖 <depen…...

Vant组件库入门知识

&#x1f648;作者简介&#xff1a;练习时长两年半的Java up主 &#x1f649;个人主页&#xff1a;程序员老茶 &#x1f64a; ps:点赞&#x1f44d;是免费的&#xff0c;却可以让写博客的作者开兴好久好久&#x1f60e; &#x1f4da;系列专栏&#xff1a;Java全栈&#xff0c;…...

Java字符串查找

目录 1.查找字符 &#xff08;1&#xff09;以索引查找字符 &#xff08;2&#xff09;以字符查找索引 2.查找字符串 在给定的字符串中查找需要的字符或字符串是常见的操作&#xff0c;以下是String类中常用的查找方法。 1.查找字符 查找字符分为两种情况&#xff1a;一种…...

2023年7月京东投影仪行业品牌销售排行榜(京东大数据)

鲸参谋监测的京东平台7月份投影仪行业销售数据已出炉&#xff01; 7月份&#xff0c;投影仪市场呈现增长趋势。根据鲸参谋平台的数据可知&#xff0c;7月京东平台投影仪的销量将近20万&#xff0c;同比增长约16%&#xff1b;销售额将近3.8亿&#xff0c;同比增长约4%。 ​*数据…...

设计模式-01简单工厂模式详解 详细代码对比

目录 ChatGpt问答原生代码简单工厂模式代码 简单工厂模式&#xff08;Simple Factory Pattern&#xff09;新增boat 对比两种方法原生代码为什么使用强制转换&#xff1f;简单工厂模式 简单工厂方法总结与原生代码的区别&#xff1a;优点:缺点&#xff1a; 参考 本文将介绍什么…...

IPD-PDT-POP角色的名称、定位和职责说明书

在IPD推进中&#xff0c;有一个不是很关键但却离不开的角色叫做POP&#xff0c;POP这个角色通常是设置在PDT团队中。 那么IPD的PDT团队中的POP这个角色到底是什么意思呢&#xff1f;POP如何开展工作&#xff0c;以及POP的主要岗位职责有哪些呢&#xff1f;华研荟今天给大家分享…...

在MySQL中查看数据库和表的数据大小

在MySQL中查看数据库和表的数据大小 在管理和维护MySQL数据库时&#xff0c;了解数据库和表的数据大小是非常重要的。这可以帮助您监控数据库的增长、优化性能以及规划存储需求。本博客将介绍如何使用SQL查询来查看MySQL数据库和表的数据大小。 查看MySQL数据库的总数据大小 …...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作&#xff1a; 1&#xff09;、切换集群 2&#xff09;、切换节点 3&#xff09;、切换到 apparmor 的目录 4&#xff09;、执行 apparmor 策略模块 5&#xff09;、修改 pod 文件 6&#xff09;、…...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

vue3 定时器-定义全局方法 vue+ts

1.创建ts文件 路径&#xff1a;src/utils/timer.ts 完整代码&#xff1a; import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

LLM基础1_语言模型如何处理文本

基于GitHub项目&#xff1a;https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken&#xff1a;OpenAI开发的专业"分词器" torch&#xff1a;Facebook开发的强力计算引擎&#xff0c;相当于超级计算器 理解词嵌入&#xff1a;给词语画"…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码&#xff0c;实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

九天毕昇深度学习平台 | 如何安装库?

pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子&#xff1a; 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定&#xff0c;这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中&#xff0c;积分电荷法最为常用&#xff0c;其原理是通过测量在电容器上积累的热释电电荷&#xff0c;从而确定热释电系数…...